使用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();
有什么想法吗?
答案 0 :(得分:0)
这是一个类加载器问题。我更改了配置:
.load(ribbonConfig.getClassLoader(), INJECTION)