Java if语句没有执行.

-3 java calendar system

可能重复:
如何比较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;

    }
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是当我运行程序时if语句在timeset和realtime相等时没有运行,我只是想不出来.这是怎么回事?

Per*_*ror 6

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

if(realtime == timeset){
Run Code Online (Sandbox Code Playgroud)

应该

if(realtime.equals(timeset)){
Run Code Online (Sandbox Code Playgroud)