热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

@NotNull,@Nonnull等在IntelliJIDEA中均不起作用

如何解决《@NotNull,@Nonnull等在IntelliJIDEA中均不起作用》经验,为你挑选了1个好方法。

我尝试用以下方式注释字段

org.checkerframework.checker.nullness.qual.NonNull

org.jetbrains.annotations.NotNull

javax.annotation.Nonnull

并且在所有情况下,为其分配null不会引起IntelliJ 2016.2的投诉。

public class GreetingController {
    @NotNull Integer x = 3;
    public void foo() { x = null; }
}

根据IntelliJ,所有这些都可以正常编译。

IntelliJ的此页面特别指出:“ IntelliJ IDEA即时显示了问题,因此您可以在编辑器中直接查看检查结果。” 我什至将示例代码(public class TestNullable)复制到了我的编辑器中,它不会产生任何错误。

IntelliJ的另一个页面指出您可以更改其响应的注释。所以我选择了javax.annotation.Nonnull,并确保那是我在代码中使用的那个,仍然没有运气。

明确地说,我希望提供的是我所希望的,并且是我所理解的是,编辑器窗口/编译器使我警惕了这个问题(我不是在寻找运行时检查,NullPointerException在运行时已经可以正常工作。)

如果它不能实时运行,我尝试了“重建项目”。

我确定这一定可行,我做错了什么?

我已经上传了一个无法在此处使用的示例:ZIP下载。



1> CrazyCoder..:

从您的屏幕截图和示例项目中可以看到,IntelliJ IDEA 确实向您显示警告。请注意,这些警告由即时运行的代码检查显示,并将显示在编辑器或Analyze | Analyze中。检查代码结果。编译器不会显示这些警告。

请注意,您可以根据需要配置突出显示警告的内容(例如,添加欠波效果):

您还可以更改检查的严重性(如“错误”):

您可能还想对此功能要求进行投票:

IDEA-78625提供检查严重性级别,该级别将类似于验证和中止编译

另外,请注意javax.annotation.Nullable注释,它可能不是您想要的,请参阅此注释和文档。多年来,IntelliJ IDEA错误地建议使用此批注,而针对此类情况的正确批注为javax.annotation.CheckForNull

该注释主要用于覆盖Nonnull注释。静态分析工具通常应将带注释的项目视为没有注释,除非将它们配置为最大程度地减少假阴性。使用CheckForNull表明,该元素的值应该总是空值进行检查。


推荐阅读
author-avatar
平凡小几
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有