所以我想學習使用自定義註釋的基礎,所以我已經創建了一個空的註釋:爲什麼java不能看到我的註釋?
public @interface CallMe {
}
和Test
類:
import java.lang.annotation.*;
@CallMe
public class Test {
public static void main(String[] args) throws Exception {
Annotation[] annotations = Test.class.getAnnotations();
if (Test.class.isAnnotationPresent(CallMe.class)) {
System.out.println("CallMe is present.");
}
System.out.println("Found " + annotations.length + " annotations.");
for (Annotation a: annotations) {
System.out.println("Annotation: " + a);
}
}
}
我編譯的類和執行Test
,但:
$ javac Test.java CallMe.java
$ java Test
Found 0 annotations.
我使用OpenJDK 1.6進行此測試,如果它很重要。我對.getAnnotations()
和.getDeclaredAnnotations()
都有好感,但沒有結果。
爲什麼Java不能找到註釋? (如果你想知道,我最初會嘗試註釋方法,這就是爲什麼我做了CallMe
,但我認爲首先要做一個類級別的例子比較容易)。
+1謝謝,目標也是有用的瞭解。 – FatalError 2014-09-23 17:22:44