Eclipseは到達可能なコード(バリアント)のデッドコードの警告を与えます

geert3:

私は、コードを次のようしています。

public String myMethod(String keyValue) {
    Map<String, Integer> keyValueToRowIndex = ...
    Integer rowIndex = (keyValue == null) ? 0 : keyValueToRowIndex.get(keyValue);
    if (rowIndex == null)
      return null;
    ...
}

Eclipseは上の「デッドコード」に警告を与えますreturn null;以下のためのテストを削除keyValue == nullもすると、警告が削除されますが、私は、余分なテストがreturn文デッドコードを作る方法が表示されません。明らかにマップがいくつかの非ヌルのエントリが含まれていない場合keyValueは、rowIndexまだnullにすることができます。それとも私はここで何かが足りないのですか?

私は(同様のEclipseの問題を見てきました、ここで例えば)が、これは別の、より些細なものを思わ。

ジャイロギアレス:

私の推測では、3行目のように解釈されていることです

Integer rowIndex = Integer.valueOf((keyValue == null) ? 0 : keyValueToRowIndex.get(keyValue).intValue());

(?の両方の引数は、よう:として統一されているint) -奇妙enogh、Eclipseは今ではrowIndexにはnullになることはありませんことを、今は明白であったとしても、何の警告を示していません...

また、交換する可能性がある0とのInteger.valueOf(0)警告が消えるように。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=168456&siteId=1