在此字符串中,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比较字符串。

10-08 01:18