【问题标题】:JCodeModel Create AnnotationJCodeModel 创建注解
【发布时间】:2019-07-22 01:06:57
【问题描述】:

您好,我对 JCodeModel 比较陌生。我的班级有以下注释

@JsonSubTypes({ @JsonSubTypes.Type(value = com.abc.MyClass.class, name = "MyClass")})
class MyClass {

}

如何使用 JCodeModel 为以下内容创建注释。 谢谢。

【问题讨论】:

  • 我想知道如何将数组作为参数提供,而注释中没有任何名称。您共享的示例未将数组展示为注释参数。
  • 你的意思是 JCodeModel 的参数?
  • 是的,参数是数组类型。如果不提及 paramArray 的名称,我看不到任何此类支持。
  • 是的。我相信你不能直接使用任何构造函数来实现它。也许您可以尝试自定义 setter 和 getter 方法并转换或转换为数组

标签: java jcodemodel


【解决方案1】:

只需注释您的JClass,并添加一个数组参数,使用paramArray() 方法:

JDefinedClass testClass = codeModel._class("MyClass");

JAnnotationUse jsonSubTypes = testClass.annotate(JsonSubTypes.class);

jsonSubTypes.paramArray("value")
    .annotate(JsonSubTypes.Type.class)
        .param("value", MyClass.class)
        .param("name", "MyClass");

生成:

@JsonSubTypes({
    @JsonSubTypes.Type(value = MyClass.class, name = "MyClass")
})
public class MyClass {


}

【讨论】:

    猜你喜欢
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多