我有超级班,还有一些这个超班的孩子。我需要将超类注释为@XmlSeeAlso,这需要作为子类的参数数组。但是对于创建子类,我需要加载super,但尚未构建。具有圈子依赖性。是否有可能在没有此注释的情况下构建所有类,并在此之后进行注释?作为下一阶段,当所有类都可用但未注释时?
@XmlSeeAlso(value = {ExtFoo.class, ExtFoo1.class})
class Foo {
//...
}
class ExtFoo extends Foo {
//..
}
class ExtFoo1 extends Foo {
//...
}
public static void main(String[] args) {
new ByteBuddy()
.subclass(Object.class)
.annotateType(new XmlSeeAlso(){
@Override
public Class<? extends Annotation> annotationType() {
return XmlSeeAlso.class;
}
@Override
public Class[] value() {
return new Class[0];//how to get childs of foo classes, when self foo not ready???
}
}).make().load(...);
....;
}
您可以使用AnnotationDescription.Builder并使用TypeDescriptions表示类型。您可以使用TypePool.Default来解析这些描述。