【发布时间】:2013-11-25 15:56:54
【问题描述】:
我已经安装了最后一个 JDK 8 (b116),但我注意到我不能使用类型注释。 例如阅读 Java 教程,如果我写的话:
String str = null;
String myString = (@NonNull String) str;
或
TEST st = new @Interned TEST();
编译器给我以下错误:
annotation type not applicable to this kind of declaration
现在可以了。在使用类型注解之前,我们必须对注解进行注解
与@Target(ElementType.TYPE_USE)。看看下面的cmets!
我也不明白像NonNull、Interned等这样的注解会不会
插入JDK或者如果我们必须下载Checker Framework
【问题讨论】:
-
检查这些注释是否可以应用于这些位置。检查
@Target注释。 -
您确定您正在使用 Java 8 编译器,并且您已将源代码级别设置为Java 8?因为您所说的与 Oracle Java 教程中关于 Java 8 的说法直接矛盾;见docs.oracle.com/javase/tutorial/java/annotations/basics.html
-
@Sotirios Delimanolis,好的,它适用于我的注释界面。也许我把 NonNull、Interned 等弄得一团糟...... JDK 不存在这些......似乎明白使用类型注释足以使用 @Target(ElementType.TYPE_USE)!跨度>
-
@StephenC,是的,我正在使用 Java 8 编译器。我的错误是不使用@Target(ElementType.TYPE_USE)。现在可以了。
-
你应该花一点时间来回答你自己的问题......并接受它。
标签: java annotations