可能重复:
How do I compare strings in Java?
java == vs equals() confusion
所以,我正在尝试开发一个在我输入时打开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相等时没有运行,我只是想不出来。这是什么交易?
答案 0 :(得分:6)
使用equals()方法检查两个日期是否相等。 ==
运算符只检查两个引用是否指向同一个实例。
if(realtime == timeset){
应该是
if(realtime.equals(timeset)){