Добавление аннотации с заданным значением с помощью 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 Вы также можете передать загруженную аннотацию, сборщик автоматически преобразует ее во внутренний формат описания.

Другие вопросы по тегам