我想多次重复使用一堆相同的注释。但问题是我不能通过应用它们来创建另一个注释(因为它们缺少 @Target({ElementType.ANNOTATION_TYPE}) 而且我无法更改它)
例如和更好的理解,我有一个
operand
@XmlElements({
@XmlElement(name = "element1", type = Element1.class),
@XmlElement(name = "element2", type = Element2.class),
@XmlElement(name = "element3", type = Element3.class)
})
private MyOperand operand;
但是另一个类在它的字段上有完全相同的注释
@XmlElements({
@XmlElement(name = "element1", type = Element1.class),
@XmlElement(name = "element2", type = Element2.class),
@XmlElement(name = "element3", type = Element3.class)
})
private List<MyOperand> operands;
我想出的最好方法是用该字段创建一个基类,并为至少两个类(在我的例子中是 3 个)创建一个基类,它们都有
List<MyOperand>
。有没有更好的办法?
注释可以采用参数列表。但是参数不是动态的,一旦定义就不能添加或更改
@interface ClassInfo{
// Note use of array
String[] myList();
}
@ClassInfo( myList = {"Larry", "Moe", "Curly"} )
public class MyClass {}
该列表是静态的,您必须定义
MyClass
(或其他)的子类型,以便在每个子类型上制作不同的 myList
。