0

StringTemplate4 を使用して、次の種類のコードを生成する必要があります。

methodFoo0(Connection conn);
methodFoo1(Connection conn, int arg1);
methodFoo2(Connection conn, int arg1, int arg2); 

etc.

「接続接続」部分は常に存在するため、メソッド名と残りの引数のみを ST テンプレートに渡します。私のテンプレートは次のようになります。

<methodName>(Connection conn, <args; separator=", ">);

これは機能しますが、引数がまったくない場合 (conn を除く)、余分なコンマが生成されます。

methodFoo0(Connection conn,);

余分なコンマを削除するために、if条件とlength ST4 関数を使用してみましたが、次のようなさまざまな組み合わせを試しましたが、機能しませんでした。

<methodName>(Connection conn <if (length(fieldsInFind) \> 0)>,<else><endif><fieldsInFind; separator=", ">)

...その他、解析関連のエラー (入力の不一致)ですべて失敗しました。

結局、私はあきらめて、プリレンダリング ロジックに基づいて、"," または空の文字列 "" のいずれかであるコンマパラメーターをテンプレートに渡すことにしました。

4

2 に答える 2

0

を使用して 2 番目のパラメーターの存在を確認し<if (fieldsInFind)>、サイズが 0 より大きい場合にのみこれをテンプレートに渡すことができます。

于 2013-04-15T11:19:06.923 に答える