Java 8,类型注释和JSR 308

xdevel2000:

我已经安装了最后一个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)请看下面的评论!

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

斯蒂芬·C:

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

对于第二部分:

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

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

理想情况下,您应该从规范的位置获得确定的源代码和/或字节码文件。但是,如果要复制注释源代码的重要部分(程序包名称,注释名称,字段名称和类型)并进行编译,则JVM的其余部分都不是明智的选择。

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章