关于日历:Java if语句未执行。

Java if statement not executing.

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I compare strings in Java?
java == vs equals() confusion

因此,我正在尝试开发一个应用程序,它在我输入时打开一个JDialog。它不需要精确到一秒钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void run() {

    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
    timeset ="16:37";

    while(true){

    System.out.println("thread sleep");
    try{Thread.currentThread().sleep(1000);}catch(InterruptedException ie){}

    Calendar cal = Calendar.getInstance();
    cal.getTime();
    temptime = sdf.format(cal.getTime());      
    System.out.println("realtime =" + realtime);
    System.out.println("timeset =" + timeset);

    if(realtime == timeset){

        System.out.println("if statement activated");
        Alert.man();
        break;

    }

所以,我的问题是,当我运行程序时,如果时间集和实时时间相等,我就不能理解if语句的运行。怎么回事?


使用equals()方法检查两个日期是否相等。==操作符只检查两个引用是否指向同一个实例。

1
if(realtime == timeset){

应该是

1
if(realtime.equals(timeset)){