繁体   English   中英

@Nonnull默认情况下在eclipse / kepler中

[英]@Nonnull by default in eclipse/kepler

在eclipse中,默认情况下可以为单个包设置非null。 有没有办法在所有包或一个包树中设置它?

编辑

我在谈论日食尊重和政策的@Nonnull注释。 目前,我们将它们放在每个函数,每个参数的每个变量上。 我知道我们可以通过将属性设置在package-info中来设置它们的包宽度,但是我们有数百个包,而且很容易错过一个包。 我希望能够设置eclipse说“默认情况下假设@Nonnull ,除非指定@Nullable ”。

如果在包上启用编译器选项“Missing'@NonNullByDefault'注释”,Eclipse可以帮助您检测缺少@NonNullByDefault的任何包。 默认情况下,此选项设置为“忽略”,根据需要设置为“警告”或“错误”。

请参阅http://help.eclipse.org/luna/topic/org.eclipse.jdt.doc.user/reference/preferences/java/compiler/ref-preferences-errors-warnings.htm?cp=1_4_2_0_3_1

试试这个可爱的小项目:

https://code.google.com/p/notnullcheckweaver/

它在每个使用@NotNull注释的元素周围插入空检查

它的默认设置是@Nullable,所以你仍然应该注释你的(root)包,让它强制执行除@Nullable注释元素之外的所有东西。

缺点:

  • 它引入了另一个@NotNull注释,并且不允许其他注释(例如java自己的@Nonnull,spring注释等)
  • 它通过字节码操作和java代理来工作

您确定要将@Notnull添加到项目中的每个函数,每个变量和每个参数(请记住,您有数百个包)吗?

如果你的函数需要返回null或参数需要为null怎么办?

我不认为这是个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM