如何在Eclipse中的类型上启用JSR308 null注释?

Tom*_*Tom 6 java eclipse eclipse-jdt java-8

随着Eclipse java 8支持的发布,我理解类型(JSR 308)上的null注释是可能的,如此处所述.我已经安装了JDK8和Eclipse Kepler 的Java 8功能补丁.我本来希望能够声明一个不允许这样的空值的列表:

List<@NonNull String> nonulls;
Run Code Online (Sandbox Code Playgroud)

但是,编译器告诉我"该位置不允许注释@NonNull":(

我的项目配置为使用编译器合规性级别1.8,并且org.eclipse.jdt.annotation jar包含在类路径中.

我在这里错过了什么?

问候,

Tom*_*Tom 5

问题是由我将Eclipse注释jar添加到项目的构建路径的方式引起的.我使用了名为" 使用默认空注释复制库来构建路径 " 的快速修复程序,它添加了旧版本的jar(org.eclipse.jdt.annotation_1.1.0.v20140129-1625.jar).此版本是pre-java-8版本,不支持类型注释.

修复是将jar的正确(java-8)版本放在构建路径上.此版本附带Kepler Java 8功能补丁,位于Eclipse安装目录的"plugins"目录中:org.eclipse.jdt.annotation_2.0.0.v20140317-1808.jar.如果将此jar添加到构建路径,请键入注释正常工作.

Thomas Schindl的致谢!