-3

可能重复:
如何比较 Java 中的字符串?
java == vs equals() 混淆

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

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 语句在 timeset 和 realtime 相等时不运行,我就是想不通。这是怎么回事?

4

1 回答 1

6

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

if(realtime == timeset){

应该

if(realtime.equals(timeset)){
于 2013-01-02T16:41:14.240 回答