[英]Eclipse to generate setters
在Eclipse中是否有任何方法給定一個具有已定義的setter列表的類,您可以在填充它們之前將它們列出來?
例如:
public class Test {
private String valueA;
private String valueB;
private String valueC;
private String valueD;
public void setValueA(String val) {
this.valueA = val;
}
public void setValueB(String val) {
this.valueB = val;
}
public void setValueC(String val) {
this.valueC = val;
}
public void setValueD(String val) {
this.valueD = val;
}
}
有一個輸出的模板/快捷方式非常方便:
test.setValueA(value);
test.setValueB(value);
test.setValueC(value);
test.setValueD(value);
顯然,4個字段的值不存在,但是當你有100個字段時它會很好(想想一個討厭的XML片段的JAXB Bean)。
注意 :我不是在詢問Source -> Generate Getters / Setters
菜單。
謝謝。
這在Eclipse中不可能直接實現,但肯定可以在插件中完成。
例如, 插件流利構建器可能會讓您感興趣:
在單元測試中實例化數據對象時,流暢的構建器特別方便
List<Movie> movies = Arrays.asList(
MovieBuilder.movie().withTitle("Blade Runner") // <- here's the builder used
.withAddedActor("Harrison Ford")
.withAddedActor("Rutger Hauer")
.build(),
MovieBuilder.movie().withTitle("Star Wars") // <- ... and also here
.withAddedActor("Carrie Fisher")
.withAddedActor("Harrison Ford")
.build());
該插件允許您使用以下wizzard為每個setter生成該類測試代碼:
我認為cat,grep和sed的非常簡單的組合可能對你有用。
這是我在半分鍾內寫的一個例子:
cat Device.java | grep "public void set" | sed 's/.*public void /myObj./' | sed 's/int\|long|boolean\|float\|double\|String//' | sed 's/( /(/' | sed 's/ {/;
我在名為Device的類上運行它。
這是產生的輸出:
myObj.setId(ID);
myObj.setNativeId(nativeId);
myObj.setManufacturer(制造商);
myObj.setModel(模型);
myObj.setCapabilities(列表功能);
正如您所看到的,它適用於所有原語,但最后一個setter需要進行一些修改。 這是因為sed命令不支持完整的正則表達式運算符集。 歡迎您使用perl或awk。 在這種情況下,您可以簡單地說s/\\(\\S+ //
,即刪除后面左括號和空格后面的所有非空格字符。
我認為編寫Eclipse插件是一個完美但過於昂貴的解決方案。
我在這里使用Unix shell命令。 如果你運氣不好:(在Windows上開發(像我一樣)我建議你使用cygwin(就像我一樣)。
我不知道有什么具體的做法。 但是,類大綱視圖非常接近,特別是如果您調整過濾器以排除您不感興趣的內容(例如字段,靜態成員,嵌套類)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.