Java 8,类型注释和JSR 308
我已经安装了最后一个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
我也不知道JDK中是否会插入诸如,等的注释NonNull
,Interned
或者是否必须下载Checker
Framework
回答:
您已经自己回答了问题的第一部分。
对于第二部分:
我也不知道JDK中是否会插入诸如,等的注释
NonNull
,Interned
或者是否必须下载Checker Framework。
注释只是一种Java类/接口。它们必须在源代码中定义并编译。
理想情况下,您应该从规范的位置获得 确定的
源代码和/或字节码文件。但是,如果要复制注释源代码的重要部分(程序包名称,注释名称,字段名称和类型)并进行编译,则其余的JVM都不是明智的选择。
但是,当谈论诸如@NonNull
和的特定注释时@Interned
,您需要意识到在不同的程序包中可能存在这些注释的多个版本。在标准/事实上的标准版本出现之前,这可能会导致问题(对于注释处理软件)。我不知道是否可以将Checkers
Framework称为事实上的标准…。
您询问是否将Checkers批注添加到Java 8库中。我个人对此表示怀疑,因为这些注释的软件包名称是不可接受的。但是等等…
以上是 Java 8,类型注释和JSR 308 的全部内容, 来源链接: utcz.com/qa/397595.html