在具有可空返回类型的方法上放置@Nullable的位置?
使用javax.annotation.Nullable
将方法标记为“可能返回null
值”时,在哪里放置@Nullable
注释? 在方法上,还是返回类型?
是否有任何技术差异,或者这是严格的风格问题?
风格A:
@Nullable public Object blah() { ... }
风格B:
public @Nullable Object blah() { ... }
这完全是一种风格问题。
无论您在源代码中的哪个位置编写注释,注释实际上都是在方法上。 这是因为javax.annotation.Nullable
定义上的@Target
元注释,这使得javax.annotation.Nullable
成为方法注释。 您可以在任一位置编写注释,因为Java语言规范语法允许方法注释穿插方法修饰符(如public
。
我认为在返回类型之前放置注释更清楚。 毕竟,它是非null的返回类型。 说方法本身是非空的是没有意义的。
在返回类型之前放置注释还有另一个重要好处:您的代码与定义为类型注释的Nullable
版本兼容。 类型注释是在Java 8中引入的。它们比方法注释更具表现力,它们可以实现更强大的检查。 例如,Eclipse和Checker Framework支持的Nullable
注释是类型注释。
选项类型将为您提供帮助。 返回类型的Option表示该方法可以返回Object,或者它可以返回None或null类型的特殊值。