Java 代码模型 - 注释方法或类

标签 java sun-codemodel

我正在使用 CodeModel 以编程方式生成 .java 文件。这是创建方法的代码片段:

JCodeModel jCodeModel = new JCodeModel();
JDefinedClass definedClass = jCodeModel._class("Foo");

//To generate method
JMethod method = definedClass.method(3, String.class, "getCustomerInfo()");

当我运行时(假设所有其他必要的代码都在那里);

public String getCustomerInfo() { }

但是我想这样注释上面的方法:

@GET
@Path("/getCustomerInfo")
public String getCustomerInfo() { }

为此我尝试了以下方法: method.annotate(...) 和 method.annotate2(...)

但是这些方法只接受类文件作为参数(即像 SomeClass.class 的形式),但我希望能够将字符串作为参数并且该类将在运行时动态可用。

假设我应该能够这样做:method.annotate("Path")

谁能帮帮我?

最佳答案

您可以使用 JClass,它可以从 String 或 Class 构造:

JCodeModel jCodeModel = new JCodeModel();
JDefinedClass definedClass = jCodeModel._class("Foo");

//To generate method
JMethod method = definedClass.method(3, String.class, "getCustomerInfo()");

method.annotate(jCodeModel.ref("javax.ws.rs.GET"));
method.annotate(jCodeModel.ref("javax.ws.rs.Path")).param("value", "/getCustomerInfo");

method.annotate(jCodeModel.ref(javax.ws.rs.GET));
method.annotate(jCodeModel.ref(javax.ws.rs.Path)).param("value", "/getCustomerInfo");

关于Java 代码模型 - 注释方法或类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19853943/

相关文章:

java - 在 JVM 之间共享类

Java等待和notifyAll : IllegalMonitorStateException

java - Apache Storm worker 内存泄漏 - 堆外

java - Sun Codemodel 的自定义格式化程序

java - 右侧 singleton.getinstance() 赋值所需的 CodeModel 帮助

java - 使用 jsonschema2pojo 或 com.sun.codemodel 时在类的开头添加注释

java - Selenium:如何从另一个类调用方法(截图)

java - JCodeModel 和 elseif

java - 如何使用 Spring Jdbc 从查询中获取 List<Object[]>