gee*_*rt3 7 java eclipse dead-code
我有以下代码:
public String myMethod(String keyValue) {
Map<String, Integer> keyValueToRowIndex = ...
Integer rowIndex = (keyValue == null) ? 0 : keyValueToRowIndex.get(keyValue);
if (rowIndex == null)
return null;
...
}
Run Code Online (Sandbox Code Playgroud)
Eclipse给出了"死代码"警告return null;.删除测试keyValue == null也删除了警告,但我没有看到额外的测试如何使return语句死代码.显然,如果地图中没有包含某些非null的条目keyValue,那么rowIndex仍然可以为null.或者我在这里遗漏了什么?
我已经看到了类似的Eclipse问题(例如这里),但这个问题似乎是一个不同的,更简单的问题.
我的猜测是第 3 行被解释为
Integer rowIndex = Integer.valueOf((keyValue == null) ? 0 : keyValueToRowIndex.get(keyValue).intValue());
Run Code Online (Sandbox Code Playgroud)
(所以 ?: 的两个参数都统一为int) - 奇怪的是,Eclipse 现在没有显示任何警告,即使现在很明显 rowIndex 永远不会为空......
您也可以将 替换0为Integer.valueOf(0)以使警告消失。
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |