我的编译器警告我A default nullness annotation has not been specified for the package
。我正在使用Juno和Java 7。
您应该添加@NonNullByDefault
作为包选项的文档统计信息,但我不知道这意味着什么。
我可以以某种方式为整个包设置NonNullByDefault
吗?在Eclipse中,我无法右键单击包并说出add option
或类似内容。
或者我只是将@NonNullByDefault
添加到包中的任何类,然后它对该包中的所有bean都有效?或者我是否必须在pakage中创建一些元信息文件以添加包选项?我必须是盲人,因为我在网上找不到任何帮助....
一个小例子很棒。
答案 0 :(得分:13)
<强>要点:强>
获得上述建议对我来说并不直观。我刚刚想出的实际解决方案也不是。在package-info.java文件中:
一个。 将注释放在包声明
上面
湾在包声明
<强>详细信息:强>
我不知道我是否是唯一一个阅读上述答案并且无法弄清楚如何使其工作的人。所以,为了更清楚,这里是我采取的(非显而易见的,直观的)步骤,以便最终在Eclipse-Juno中工作:
您的Java编辑器现在将显示一个名为“ package-info.java ”的新文件,其中包含以下内容:
/**
*
*/
/**
* @author xyz
*
*/
package org.public_domain;
现在,重新排列文件内容,如下所示:
/**
*
*/
/**
* @author xyz
*
*/
@NonNullByDefault
package org.public_domain;
import org.eclipse.jdt.annotation.NonNullByDefault;
......或者像这样...
/**
*
*/
/**
* @author xyz
*
*/
@org.eclipse.jdt.annotation.NonNullByDefault
package org.public_domain;
享受日食@NonNullByDefault
我的挑战是弄清楚我要将注释放在包声明之上。并且在包声明之后输入NonNullByDefault注释。对我来说,这不直观。
希望这可以节省其他人,因为我已经结束了追逐这条特殊途径的时间。
答案 1 :(得分:4)
如果您只是想摆脱警告并忽略此功能,因为您没有使用它,您只需在Eclipse首选项中禁用它:
窗口&gt;偏好&gt; Java&gt;编译器&gt;错误/警告&gt;空分析&gt;包 = [忽略]
缺少'@NonNullByDefault'注释答案 2 :(得分:2)
请参阅source code或JavaDocs:
Note that for applying an annotation to a package a file by the name
package-info.java is used.
和
@Target({PACKAGE,TYPE,METHOD,CONSTRUCTOR})