我想有我制定者返回自己制定者,這樣我可以把它們連想:生成一個在Eclipse
myPojo.setX(x).setY(y);
平時我產生與Eclipse制定者無奈code template
的setter方法可以讓我只有改變二傳手的身體,而不是簽名。
什麼是最簡單的方法來完成上述?除了搜索和替換+手動編輯? :)
我想有我制定者返回自己制定者,這樣我可以把它們連想:生成一個在Eclipse
myPojo.setX(x).setY(y);
平時我產生與Eclipse制定者無奈code template
的setter方法可以讓我只有改變二傳手的身體,而不是簽名。
什麼是最簡單的方法來完成上述?除了搜索和替換+手動編輯? :)
您可能可以使用fluent-builders-generator plugin以您想要的方式生成設置器。
我看到更多與流暢接口相關的模式比OP要求的更多。有沒有簡單設置所需模板的方法? –
我認爲這個項目已經死了 – lrkwz
您可以使用編輯器/模板來達到此目的。要定義一個新的模板,打開Preferences窗口,然後選擇Java-> Editor-> Templates。 在這個窗口中,您可以定義一個新模板併爲其命名。例如:
public ${enclosing_type} setName(${argType} name) {
this.name = name;
return this;
}
給它一個名字,例如: settr。然後你可以在你的java代碼中使用這個模板,方法是輸入'settr',然後按Ctrl-Space。
我可以提供一種補丁,但不需要任何額外的安裝。
轉到窗口/首選項/ Java /代碼樣式/代碼模板。編輯「二傳手體」模板如下:
${field} = ${param};
return this;
現在,當你運行「生成getter和setter」它會創建setter方法,如:因爲該方法類型是void
public void setMyField(String myField) {
this.myField = myField;
return this;
}
這顯然會導致編譯錯誤。但是你可以點擊Ctrl-F
,並用public YourClassName set
替換所有'public void set'。
這是一個補丁,但它的工作原理...
它不能解決真正的問題。以同樣的方式,我可以回答使用Emacs而不是Eclipse,但它也不能解決問題。 –
它確實回答了最初編寫的問題。問題已經被改變。 –
記事本+ +解決方案:
數據:
JavaType variableName;
搜索正則表達式:
(.*) (.*);
更換正則表達式
public JavaType with\2\(\1 p\2\) { this.\2 = p\2; return this; }
您必須手動更正方法名稱,因爲它不包含變量名的第一個字母。
我認爲你可以做的最好的方法是將方法體的模板更改爲'$ {field} = $ {param};返回此;'然後自動更正所產生的編譯器錯誤。 – mercutio
它很難相信日食仍然沒有這個作爲生成設置器中的複選框..... – mtyson