Как написать bytebuddy код для частного списка <@Min (3) @Max (7) String> myList - PullRequest
1 голос
/ 29 апреля 2020

Мне нужно создать это поле:

private List<@Min(3) @Max(7) String> myList

Без аннотаций я могу сделать это с помощью:

.defineField("myList", TypeDescription.Generic.Builder.parameterizedType(List.class, String.class).build(), Visibility.PRIVATE)

Как я могу аннотировать параметр типа?

1 Ответ

1 голос
/ 30 апреля 2020

Вы можете вкладывать типы из компоновщика, а также создавать аннотации

TypeDescription.Generic.Builder.parameterizedType(
  TypeDescription.ForLoadedType.of(List.class),
  TypeDescription.Generic.Builder.rawType(String.class).annotate(
    AnnotationDescription.Builder.ofType(Min.class).define("value", 3).build(),
    AnnotationDescription.Builder.ofType(Max.class).define("value", 7).build()
  ).build()
).build();
...