java - 如何在 Eclipse 中的类型上启用 JSR308 空注释?

标签 java eclipse java-8 eclipse-jdt

随着 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/

相关文章:

java - Stream.skip 行为与无序终端操作

java - 如何在java中对特定的二维数组进行排序

java - 油漆似乎不是在画东西

java - Eclipse - 远程java调试不显示变量值

java - 从源代码构建 Elasticsearch,但它需要 Java 10

list - 如何从 map 中获取 optional 值作为 optional 列表?

c# - 使用 Java Applet 或 ActiveX 控件从网页导入 outlook 联系人

java - 难以从新闻网页中提取主要内容

java - 如何在一个Eclipse项目中使用多个GitHub项目?

java - 将动态 Web 项目导入 Eclipse