问题描述
Class<?> metricTags = new ByteBuddy()
.subclass(Object.class)
.name("demo.metrics.MetricTags")
.annotateType(AnnotationDescription.Builder.ofType(Component.class).build())
.annotateType(AnnotationDescription.Builder.ofType(Data.class).build())
.defineField("sourceApp",String.class,Visibility.PUBLIC)
.annotateField(AnnotationDescription.Builder.ofType(Value.class).define("sourceApp","dsdw23").build())
.defineField("sourceServiceNamespace",Visibility.PRIVATE)
.defineField("sourceServiceName",Visibility.PRIVATE)
.defineField("protocol",Visibility.PRIVATE).value("http")
.defineField("appName",Visibility.PRIVATE)
.make()
.load(AgentMain.class.getClassLoader(),ClassLoadingStrategy.Default.WRAPPER)
.getLoaded();
报告错误: 引起:java.lang.IllegalArgumentException:接口 lombok.Value 没有定义名为 sourceApp 的属性
解决方法
错误表明 Value 注释没有定义 thst name 的属性。您只能定义由注解类型声明的属性。