Searchable.java
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Searchable { }
Obj.java
public class Obj {
@Searchable
String myField;
}
void main(String [] args)
Annotation[] annotations = Obj.class.getDeclaredField("myField").getAnnotations();
我希望
annotations
包含我的@Searchable
。虽然是null
。根据文档,此方法:(对我而言)这更奇怪,因为它返回
null
而不是Annotation[0]
。我在这里做错了,更重要的是,我将如何获得
Annotation
? 最佳答案
我刚刚为您测试过,它就可以了:
public class StackOverflowTest {
@Test
public void testName() throws Exception {
Annotation[] annotations = Obj.class.getDeclaredField("myField").getAnnotations();
System.out.println(annotations[0]);
}
}
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@interface Searchable {
}
class Obj {
@Searchable
String myField;
}
我运行它,它产生以下输出:
@nl.jworks.stackoverflow.Searchable()
您可以尝试在IDE中运行上述类吗?我在IntelliJ,openjdk-6上尝试过。