Так что я пытаюсь научиться основам использования пользовательских аннотаций, так что я создал пустой аннотацию:Почему 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 не находит аннотацию?
(И в случае, если вам было интересно, я изначально собирался попытаться аннотировать методы, поэтому я сделал это , но я решил, что пример уровня класса будет проще сделать первым).
+1 Спасибо, Target было также полезно узнать о , – FatalError