gpt4 book ai didi

java - CodeModel 如何添加@Pattern.List 注释 com.sun.codemodel

转载 作者:行者123 更新时间:2023-11-29 05:45:39 27 4
gpt4 key购买 nike

我正在使用 com.sun.codemodel 生成我的类并添加 JSR303 注释。这工作正常,除非我想添加 @Pattern.List 注释。

field.annotate(Pattern.class).param("regexp", "some_expression");

这是当前生成的内容:

@Pattern(regexp = "first_expression", message = "first.Pattern.message")
@Pattern(regexp = "second_expression", message = "second.Pattern.message")
@Pattern(regexp = "third_expression", message = "third.Pattern.message")

这就是我要生成的

@Pattern.List({
@Pattern(regexp = "first_expression", message = "first.Pattern.message")
@Pattern(regexp = "second_expression", message = "second.Pattern.message")
@Pattern(regexp = "third_expression", message = "third.Pattern.message")
})

有人知道这是怎么做到的吗?

最佳答案

假设您需要 @PatternList(list = {@Pattern...}) 而不是您需要使用 paramArray() 方法:

JDefinedClass testme = codeModel._class("Testme");

JAnnotationUse patternListAnnotation = testme.annotate(Pattern.List.class);
JAnnotationArrayMember list = patternListAnnotation.paramArray("value");

list.annotate(Pattern.class).param("regexp", "first_expression").param("message", "first.Pattern.message");
list.annotate(Pattern.class).param("regexp", "second_expression").param("message", "second.Pattern.message");
list.annotate(Pattern.class).param("regexp", "third_expression").param("message", "third.Pattern.message");

输出如下:

@Pattern.List({
@Pattern(regexp = "first_expression", message = "first.Pattern.message"),
@Pattern(regexp = "second_expression", message = "second.Pattern.message"),
@Pattern(regexp = "third_expression", message = "third.Pattern.message")
})
public class Testme {
}

这对于示例代码中提示的字段应该同样有效。

关于java - CodeModel 如何添加@Pattern.List 注释 com.sun.codemodel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15952259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com