在此字符串中,Eclipse在“不匹配”上显示无效代码警告吗?
String b = ("goodString")==("goodString") ? "Condition Macth": "Not Match";
它甚至在编译前是否检查字符串?
String a = ("goodString".equals("goodString")) ? "Condition Macth" : "Not Match";
如果我更改为.equals,则警告关闭。
最佳答案
Eclipse可能会分析您的代码以检测无效代码。
在此特定情况下,它显示警告,因为由于string interning这些值始终具有相同的标识,因此条件始终为true。 Eclipse会检测到并发出警告。
如果使用equals
,则比较不再是常数表达式(JLS § 15.28),并且不再保证返回true
。因此,警告消失了。
顺便说一句,您应该始终使用equals
比较字符串。