我的java方法可以返回null
和非null结果。我想要带有@Nullable
注释的标记方法,以使其更具可读性。
我使用com.sun.istack.internal.Nullable
,但声纳说来自" sun。*"不应该使用包裹。代号闻到主要鱿鱼:S1191 。
我尝试找到更多类似的注释,但是有来自不同IDE的变体,而不是来自java供应商。
java(oracle)是否为可以为空的注释提供了替代方法,或者我应该只使用第三方库?如果我必须使用第三方库来@Nullable
哪一个应该是好的?
答案 0 :(得分:4)
好吧,我想对于Sonar你可以使用edu.umd.cs.findbugs.annotations。*,这些已被弃用并建议你使用javax.annotation.Nullable。
我主要使用Jetbrains,https://www.jetbrains.com/help/idea/nullable-and-notnull-annotations.html,但我的主要目标是IntelliJ中的分析。
答案 1 :(得分:3)
为了使其更具可读性,请考虑使用Optional<T>
作为返回类型,使用它可以使用类型系统表达可选性,并从丰富的monadic类API中受益。
答案 2 :(得分:1)
Optional<T>
或@Nullable
或@return
标记是向API用户说出方法可以返回null
的方法。但是您在评论中提到您的方法是private
。这意味着除了你之外,没有人可以使用它。这就是为什么不需要额外的东西。
答案 3 :(得分:0)
对于FIndbug / Spotbug,请使用@CheckForNull。参见https://sourceforge.net/p/findbugs/bugs/1181)