如何为 private List<@Min(3) @Max(7) String> myList 编写 bytebuddy 代码

How to write bytebuddy code for private List<@Min(3) @Max(7) String> myList

我需要生成这个字段:

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

没有注释我可以用:

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

如何注释类型参数?

您可以从构建器嵌套类型,也可以构建注释

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();