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=", ">)
...その他、解析関連のエラー (入力の不一致)ですべて失敗しました。
結局、私はあきらめて、プリレンダリング ロジックに基づいて、"," または空の文字列 "" のいずれかであるコンマパラメーターをテンプレートに渡すことにしました。