簡體   English   中英

Eclipse生成setter

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM