两者有什么区别?两者似乎都意味着该值可以为null,因此应进行相应处理,即检查是否为null。
更新: 上面的两个注释是JSR-305 / FindBugs的一部分:http : //findbugs.sourceforge.net/manual/annotations.html
我认为从添加的链接中可以很清楚地看到:如果您使用@CheckForNull并且使用该值的代码未检查null,FindBugs会将其显示为错误。
@CheckForNull
null
FindBugs将忽略@Nullable。
@Nullable
实际上,此注释仅在覆盖总体NonNull注释时有用。
NonNull
@CheckForNull在必须始终检查该值的情况下使用。@Nullable在null可能可以的地方使用。
编辑:目前似乎@CheckForNull还没有很好的支持,所以我建议避免使用它@NonNull另一个想法是直接与FindBugs开发人员联系,并询问他们对文档不一致的意见。
@NonNull