字节好友:具有字节好友类的Annotation和Class <!-?-> []属性

时间:2018-11-07 15:53:30

标签: java byte-buddy

使用ByteBuddy,我需要创建一个带有注释的新类。该注释具有Class []属性。我使用由Byte buddy创建的类来设置值

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyAnnotation {
    Class<?>[] configuration() default {};
}

带注释的班级:

final Class<?> configClass = new ByteBuddy()
    .subclass(Object.class)
    .annotateType(AnnotationDescription.Builder.ofType(MyAnnotation.class)
        .defineTypeArray("configuration", myConfigClass)
        .build())
    .make()
    .load(getClass().getClassLoader(), ClassLoadingStrategy.Default.WRAPPER)
    .getLoaded();

但这不起作用,该类上没有注释。当我使用一个不字节的伙伴创建的类时,它可以工作。

这是我的字节好友创建的类:

final Class<? extends BasicConfig> myConfigClass = new ByteBuddy()
    .subclass(BasicRibbonConfig.class)
    .method(ElementMatchers.named("getTargetApplication"))
    .intercept(FixedValue.value(targetApplication))
    .make()
    .load(getClass().getClassLoader(), ClassLoadingStrategy.Default.WRAPPER)
    .getLoaded();

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是一个类加载器问题。我更改了配置:

.load(ribbonConfig.getClassLoader(), INJECTION)