随着 Eclipse 的 java 8 支持的发布,我了解到类型上的空注释 (JSR 308) 是可能的,as described here . 我已经安装了 JDK8,并且 Java 8 feature patch对于 Eclipse 开普勒。 我期望能够声明一个不允许这样的空值的列表:
List<@NonNull String> nonulls;
但是,编译器告诉我“此位置不允许注释 @NonNull”:(
我的项目配置为使用编译器合规级别 1.8,类路径中包含 org.eclipse.jdt.annotation jar。
我在这里错过了什么?
问候,
最佳答案
问题是由我将 Eclipse 注释 jar 添加到项目的构建路径的方式引起的。我使用了名为“使用默认空注释复制库以构建路径”的快速修复,它添加了旧版本的 jar (org.eclipse.jdt.annotation_1.1.0.v20140129-1625 .jar
).该版本为pre-java-8版本,不支持类型注解。
修复方法是将正确的 (java-8) 版本的 jar 放在构建路径上。此版本附带 Kepler Java 8 feature patch , 并且位于 Eclipse 安装目录的 'plugins' 目录中:org.eclipse.jdt.annotation_2.0.0.v20140317-1808.jar
。如果将此 jar 添加到构建路径,则类型注释可以正常工作。
归功于 Thomas Schindl !
关于java - 如何在 Eclipse 中的类型上启用 JSR308 空注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22531237/