Eclipse - 将 map.get 与意外类型一起使用时生成警告

Eclipse - generate a warning when using map.get with an unexpected type

Eclipse Luna(或较新版本)中是否有允许在以下情况下显示警告的设置:

Map<K, V> map = new HashMap<>();
map.get(val);

哪里val的类型不是K? (警告应显示在第二行)

我知道上面的代码是有效的,因为 Map.get 将对象作为参数,但几乎在每种情况下都是我的错误,所以我希望显示警告。

Eclipse 及其编译器旨在与 Java 编译器和形式语言规范保持一致。 javac 编译器在没有任何警告的情况下接受您的代码(即使启用了 -Xlint),因为 get 方法采用 Object.

因此,Eclipse 没有理由提出自己的警告。看起来更像是像 FindBugs 这样的静态分析工具的工作。

IntelliJ Idea 会在静态代码分析中给您一个警告。在 Eclipse 中,您可以从市场安装 FindBugs,尽管该检查不是开箱即用的,但您可以实现自己的错误检测器。 Check this out