0
我在查找類的列表以檢查類是否具有Annonation。這是代碼:類#isAnnotationPresent不起作用
if (clazz.getAnnotations().length > 0){
System.out.println(clazz.getAnnotations()[0]);
}
if (clazz.isAnnotationPresent(Manifest.class)){
System.out.println(clazz.getName());
}
第一條if語句僅用於調試。一類打印:
@bot.script.Manifest(description=test, version=1.0, name=test)
這與Manifest.class完全相同,但爲什麼clazz.isAnnotationPresent不起作用?
您確定您在兩種情況下都在尋找相同的「Manifest」類嗎? – 2013-03-02 12:45:57
是的,它打印:bot.script.Manifest。我已經爲Manifest.class導入了bot.script.Manifest – 2013-03-02 12:47:02
你有幾個類加載器嗎?什麼'System.out.println(class.getAnnotations()[0] .getClassLoader())'和'System.out.println(Manifest.class.getClassLoader())'print?這兩個班級裝載機是一樣的嗎? – 2013-03-02 12:51:49