Есть ли способ предотвратить использование Byte Buddy значений по умолчанию для аннотаций, которые я добавил? Используя следующий пример, основанный на плагине сборки, я хотел бы видеть избыточные значения required
и namespace
, опущенные из полученного байткода для аннотации @XmlAttribute
в поле baz
.Могу ли я запретить Byte Buddy испускать значения по умолчанию для аннотаций?
Foo/Bar.java:
package foo;
import javax.xml.bind.annotation.XmlAttribute;
public class Bar {
@XmlAttribute(name = "qux")
public String qux;
}
сеть/bytebuddy/тест/SimplePlugin.java:
...
public class SimplePlugin implements Plugin {
...
@Override
public DynamicType.Builder<?> apply(DynamicType.Builder<?> builder, TypeDescription typeDescription) {
return builder.defineField("baz", String.class, Visibility.PUBLIC)
.annotateField(AnnotationDescription.Builder.ofType(XmlAttribute.class)
.define("name", "baz")
.build());
}
}
Foo/Bar.class:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package foo;
import javax.xml.bind.annotation.XmlAttribute;
public class Bar {
@XmlAttribute(
name = "qux"
)
public String qux;
@XmlAttribute(
name = "baz",
required = false,
namespace = "##default"
)
public String baz;
public Bar() {
}
}