3

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(...) and method.annotate2(...)

しかし、これらのメソッドはクラス ファイルのみを引数として受け入れます (つまり、SomeClass.class の形式のように) が、引数として String を使用できるようにしたいと考えており、そのクラスは実行時に動的に使用できます。

次のようにできるとしますmethod.annotate("Path")

誰でも私を助けることができますか?

4

5 に答える 5

6

JClassString または Class から構築できる which を使用できます。

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");
于 2014-02-07T21:33:47.070 に答える
1

を取るJClassバリアントもあるため、次のいずれかを行う必要があります。

  • クラスパスに注釈があるか、
  • で注釈を生成しますJCodeModel

私が見る限り、それはクラスの他のすべての使用法とほとんど同じアプローチであり、ここで注釈がどのように異なるべきかわかりません。

于 2013-11-08T09:20:42.930 に答える
0

メソッドで次のようなことができます:

yourJMethod.annotate(YourClass.class); 
于 2015-09-24T13:04:50.360 に答える