1 回答

TA貢獻1875條經驗 獲得超3個贊
我不認為它有什么特別的意義。這是一個與JEP 161相關的系統注釋,它添加了附加的“配置文件”,以便您可以在 JRE 的子集上運行應用程序。它以編程方式添加,因此不需要遵守語法規則。
在 OpenJDK 錯誤跟蹤器中搜索此 JEP ,發現添加了“合成”注釋的提交。
看起來好像已經為 a 建立了先例sun.Proprietary+Annotation
,他們只是遵循慣例。
我懷疑 Sun 注釋以這種方式命名的原因已經消失在時間的編年史中——它早于 Java 6,在代碼開源之前。
我還發現了對 jdeps 的提交,他們在其中解析這些注釋,而它們并不重視它們的命名方式;他們只是為兩者使用完全限定的名稱。
您也可以開始使用非法類型標識符——無需在 Oracle 工作!
final DynamicType.Unloaded<? extends Annotation> unloaded = new ByteBuddy()
.with(TypeValidation.DISABLED)
.makeAnnotation()
.name("jdk.Profile+Annotation")
.make();
final DynamicType.Loaded<? extends Annotation> loaded = unloaded.load(Test.class.getClassLoader());
final Class<? extends Annotation> myBadlyNamedAnnotation = loaded.getLoaded();
System.out.println(myBadlyNamedAnnotation);
添加回答
舉報