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中是否会插入诸如,等的注释NonNullInterned或者是否必须下载Checker

Framework

回答:

您已经自己回答了问题的第一部分。

对于第二部分:

我也不知道JDK中是否会插入诸如,等的注释NonNullInterned或者是否必须下载Checker Framework。

注释只是一种Java类/接口。它们必须在源代码中定义并编译。

理想情况下,您应该从规范的位置获得 确定的

源代码和/或字节码文件。但是,如果要复制注释源代码的重要部分(程序包名称,注释名称,字段名称和类型)并进行编译,则其余的JVM都不是明智的选择。

但是,当谈论诸如@NonNull和的特定注释时@Interned,您需要意识到在不同的程序包中可能存在这些注释的多个版本。在标准/事实上的标准版本出现之前,这可能会导致问题(对于注释处理软件)。我不知道是否可以将Checkers

Framework称为事实上的标准…。

您询问是否将Checkers批注添加到Java 8库中。我个人对此表示怀疑,因为这些注释的软件包名称是不可接受的。但是等等…

以上是 Java 8,类型注释和JSR 308 的全部内容, 来源链接: utcz.com/qa/397595.html

回到顶部