bytebuddy:注释已构建的类

问题描述 投票:0回答:1

我有超级班,还有一些这个超班的孩子。我需要将超类注释为@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(...);
            ....;
}
java byte-buddy
1个回答
0
投票

您可以使用AnnotationDescription.Builder并使用TypeDescriptions表示类型。您可以使用TypePool.Default来解析这些描述。

© www.soinside.com 2019 - 2024. All rights reserved.