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