Dan*_*lan 7 java intellij-idea nullpointerexception
有没有办法让Intellij警告我这可能会导致NullPointerException?
URL resource = Main.class.getResource("blah/ha");
System.out.println(resource.getAuthority()); //potential NPE here
Run Code Online (Sandbox Code Playgroud)
Intellij非常善于警告我正在做的蠢事.有没有办法可以在这里警告我潜在的NPE?
请注意,getResources它上面没有任何null/notnull注释.至少在JDK 1.7中不是我正在使用的.
Intellij IDEA可以检测@Nullable和@NotNull注释在哪里合适并自动插入它们。这可以通过以下方式完成
\n\n\n\n\n分析 -> 推断无效
\n
通过这种方式,您可以自动将这些注释添加到当前文件、未提交的文件或各种其他范围。
\n\n这种方法的缺点是您必须控制正在分析的代码,因此您不能将其用于第三方代码。从 Intellij Idea 14 开始,有一个称为自动@NotNull/@Nullable/@Contract 推理的功能的功能。默认情况下,此功能在 intellij idea 14 中处于活动状态。Idea分析源码,自动检测是否应该有@Nullable或@NotNull注解。与 infer nullity 的主要区别在于,它实际上不会将注释插入代码本身,而仅在左侧编辑器栏上显示合约信息。如果您正在使用第三方库或不希望在代码中使用专有的 jetbrains 注释,这尤其有用。
\n\n
更新:
\n\n请注意,@Nullable 注释不再自动推断,因为它导致了太多误报https://youtrack.jetbrains.com/issue/IDEA-130063#comment=27-812471
\n\n另外,根据Peter Gromov 对上述帖子作者的评论并非所有方法都是通过此功能推断的
\n\n\n\n另请注意,对于可重写的方法,不会推断契约,即非静态非私有非最终方法不具有契约。
\n
一种方法是使用Inspections。
如果代码有注释,@Nullable您可以使用检查:

然后选择Run Inspection by Name:

然后您可以选择范围(项目、测试等)

结果将显示在检查选项卡中:

您可以在可为空的操作方法中找到更多相关信息
| 归档时间: |
|
| 查看次数: |
2138 次 |
| 最近记录: |