- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
两者有什么区别?两者似乎都意味着该值可能为空,应进行相应处理,即检查是否为空。
更新:上面的两个注释是 JSR-305/FindBugs 的一部分: http://findbugs.sourceforge.net/manual/annotations.html
最佳答案
我认为您添加的链接很清楚:如果您使用 @CheckForNull
并且使用该值的代码不检查 null
,FindBugs 将显示这是一个错误。
FindBugs 将忽略 @Nullable
。
In practice this annotation is useful only for overriding an overarching
NonNull
annotation.
在必须始终检查值的情况下使用 @CheckForNull
。使用 @Nullable
其中 null
可能没问题。
编辑:目前看来 @CheckForNull
没有得到很好的支持,所以我建议避免使用它并使用 @NonNull
(另见 Which @NotNull Java annotation should I use? )。另一个想法是直接与 FindBugs 开发人员联系,并询问他们对文档中的不一致之处的意见。
关于javax.annotation : @Nullable vs @CheckForNull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12301570/
我看到了这段代码。我想知道为什么同时使用这两个注释? CheckForNull 来自代码分析工具,检查编译时属性可以为null。但是 NotNull 是运行时检查并说属性是 NOT null?为什么同
当我通过 Findbugs 运行它时,我收到警告: static @NonNull Object foo(@CheckForNull Object arg) { if (arg == null
我想正式注释我的函数签名以阐明它们的契约——特别是如果 null 参数和返回值被允许或禁止——以 FindBugs 的静态代码分析工具(可能还有其他工具)的方式) 可以利用它。 有两个包(annota
两者有什么区别?两者似乎都意味着该值可能为空,应进行相应处理,即检查是否为空。 更新:上面的两个注释是 JSR-305/FindBugs 的一部分: http://findbugs.sourcefor
classpath "io.realm:realm-gradle-plugin:4.2.0" 然后 apply plugin: 'realm-android' 然后构建 Error:Execution
如果类中方法的实现上存在 CheckForNull 注释,但接口(interface)中方法的声明上不存在 CheckForNull 注释,是否有任何方法可以让 FindBugs 检查并警告我? im
我收到重复条目的错误:Java/annotation/check for null。我试图解决这个问题但没有解决。我已经解决了所有与谷歌相关但 Unresolved 问题。帮我做点什么 Erro
每次我尝试生成我的应用程序的签名 apk 时,我都会收到构建错误:重复条目:javax/annotation/CheckForNull.class。我四处搜索,尝试了我找到的所有修复方法,但不知道该怎
我是一名优秀的程序员,十分优秀!