當我通過Class
作爲方法參數時,編譯器是否有可能檢查Annotation
是否在Class
上定義?編譯器檢查類的註釋
我想使用Annotation
,如標記Interface
。而不是使用接口MarkerInterface
的:
void method(Class<? extends MarkerInerface>);
我想編譯器檢查的Annotation
。例如MyAnnotation
:
void method(Class<? annotates MyAnnotation>);
有什麼辦法可以做點什麼嗎?
編輯:下面的代碼應導致編譯器錯誤:
method(Object.class); // Error since Object doesn't have MyAnnotation defined
method(MyClass.class); // fine.
@MyAnnotation
public class MyClass {...}
你可以讓你的問題更具體,如通過顯示符合客戶端的代碼,編譯器應該批准,並顯示編譯器應該爲其發出警告的不合格客戶端代碼? – mernst
完成。希望現在清楚。順便說一句。我更多地考慮編譯器錯誤而不是警告。 – Armin