Добавление аннотации с заданным значением с помощью Byte Buddy

Как я могу использовать Byte Buddy для добавления аннотации с заданным значением?

Я играю с созданием тестовых классов для JUnit, и я хотел бы аннотировать сгенерированный класс с помощью @RunWith(SomeRunner.class).


person Kimble    schedule 08.01.2016    source источник


Ответы (1)


Вы можете аннотировать класс в свободном API:

new ByteBuddy()
  .subclass(Object.class)
  .annotateType(AnnotationDescription.Builder.ofType(RunWith.class)
                                             .define("value", SomeRunner.class)
                                             .build())
  .make();

В качестве альтернативы AnnotationDescription.Builder вы также можете передать загруженную аннотацию, конструктор автоматически преобразует ее во внутренний формат описания.

person Rafael Winterhalter    schedule 09.01.2016