Добавление аннотации с заданным значением с помощью Byte Buddy
Как я могу использовать Byte Buddy, чтобы добавить аннотацию с заданным значением?
Я играю с созданием тестовых классов для JUnit, и я хотел бы аннотировать сгенерированный класс @RunWith(SomeRunner.class)
,
1 ответ
Решение
Вы можете аннотировать класс в свободном API:
new ByteBuddy()
.subclass(Object.class)
.annotateType(AnnotationDescription.Builder.ofType(RunWith.class)
.define("value", SomeRunner.class)
.build())
.make();
В качестве альтернативы AnnotationDescription.Builder
Вы также можете передать загруженную аннотацию, сборщик автоматически преобразует ее во внутренний формат описания.