如您所见,我有3种不同的注释类。除了班级名称外,所有3个都是相同的。我呼叫Tree.getAnnotations()
时唯一出现的是注释@Element
。
@Element(name = "node")
public class Tree<T> {
private Tree<T>[] children = null;
private T value;
public Tree(T v, Tree<T>[] trees){
children = trees;
value = v;
}
public Tree(T v){
value = v;
}
@SubElements(name = "subnodes")
public Tree<T>[] getChildren(){
return children;
}
@ElementField(name = "value")
public T getValue(){
return value;
}
}
这是注释类:
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface Element {
String name();
}
答案 0 :(得分:1)
该类确实只有一个注释。另外两个属于类方法。要找到他们,你可以这样做:
Method getValue = Tree.class.getMethod("getValue"); //get the method
getValue.getAnnotations(); //get annotations, only ElementField in this case
每种其他方法都一样。