Android逻辑运算&&amp ;?

时间:2011-12-12 19:46:43

标签: java android

这个让我适应了一个多小时...我发誓代码是对的。我错过了什么吗?

if((fType != "EXACT") && (dateTime > System.currentTimeMillis())){ 
    myIntent = new Intent(getBaseContext(), MyScheduledReceiver1.class);                        
} else {
    myIntent = new Intent(getBaseContext(),MyScheduledReceiver2.class);
}

即使String fType是“完全”&将来long dateTime ...它仍在调用MyScheduledReceiver1.class ...当1为false时,它应该调用MyScheduledReceiver2.class。

1 个答案:

答案 0 :(得分:12)

问题可能是您正在比较字符串引用,而不是比较字符串 中的值

if (!fType.equals("EXACT") && dateTime > System.currentTimeMillis()) {
    ...
}

现在将调用字符串上的equals方法,该方法将比较两个字符序列是否相等,而不仅仅是fType"EXACT"是否完全相同{ {1}}对象。

(如果String为空,则会抛出异常;如果您希望它不匹配,则可以使用fType - 这取决于具体情况。)