一尘不染

javax.annotation:@Nullable与@CheckForNull

java

两者有什么区别?两者似乎都意味着该值可以为null,因此应进行相应处理,即检查是否为null。

更新: 上面的两个注释是JSR-305 /
FindBugs的一部分:http :
//findbugs.sourceforge.net/manual/annotations.html


阅读 1021

收藏
2020-12-03

共1个答案

一尘不染

我认为从添加的链接中可以很清楚地看到:如果您使用@CheckForNull并且使用该值的代码未检查null,FindBugs会将其显示为错误。

FindBugs将忽略@Nullable

实际上,此注释仅在覆盖总体NonNull注释时有用。

@CheckForNull在必须始终检查该值的情况下使用。@Nullablenull可能可以的地方使用。

编辑:目前似乎@CheckForNull还没有很好的支持,所以我建议避免使用它@NonNull另一个想法是直接与FindBugs开发人员联系,并询问他们对文档不一致的意见。

2020-12-03