我需要StringTemplate4產生以下幾種代碼:StringTemplate4如果有條件的長度爲
methodFoo0(Connection conn);
methodFoo1(Connection conn, int arg1);
methodFoo2(Connection conn, int arg1, int arg2);
etc.
「連接參數conn」部分是始終存在的,所以我只能傳遞方法的名稱和參數的休息到我的ST模板。我的模板看起來如下:
<methodName>(Connection conn, <args; separator=", ">);
這工作,但如果沒有參數,在所有(除康涅狄格州)產生一個額外的逗號:
methodFoo0(Connection conn,);
爲了消除多餘的逗號我使用如果嘗試條件和長度 ST4功能,但我無法得到它的工作,雖然我試圖像下面的各種連續技:
<methodName>(Connection conn <if (length(fieldsInFind) \> 0)>,<else><endif><fieldsInFind; separator=", ">)
...和其他人都失敗了一些解析相關的錯誤(不匹配的輸入)。
最後,我放棄了,並採取了將逗號參數傳遞給基於預渲染邏輯的「,」或空字符串「」的模板。