在这个字符串 eclipse 中显示“不匹配”的死代码警告? String b = ("goodString")==("goodString") ? "Condition Macth": "Not Match";它甚至在编译之前检查字符串吗?String a = ("goodString".equals("goodString")) ? "Condition Macth" : "Not Match";如果我更改为 .equals 警告关闭。
2 回答
不负相思意
TA贡献1777条经验 获得超10个赞
Eclipse 可能会分析您的代码以检测死代码。
在这种特殊情况下,它显示警告,因为这些值由于string interning而始终具有相同的标识,因此条件始终为真。Eclipse 检测到这一点并发出警告。
如果使用equals
,则比较不再是常量表达式(JLS § 15.28),并且不再保证返回true
。因此警告消失了。
顺便说一句,您应该始终使用equals
来比较字符串。
catspeake
TA贡献1111条经验 获得超0个赞
String b = ("goodString")==("goodString") ? "Condition Macth": "Not Match";
在这里,Eclipse IDE 足够聪明地找到死代码。如果发现“If”条件始终为真,那么它将“else”部分警告为死代码,因为它永远不会被执行。在此代码段中,三元条件始终为真,因此显示死代码警告。
添加回答
举报
0/150
提交
取消