2011-02-02 68 views
2

如何遞歸地將toString方法中的所有鏈接替換爲StringBuilder for Java? eclipse中是否有這樣的插件? 例如: 替換:如何將String catenation替換爲StringBuilder追加?

return "AccountAddresses [" 
      + ", corporateAddresses=" + CommonHelper.isNotNull(corporateAddresses) 
      + ", corporateDeliveryMinimum=" + corporateDeliveryMinimum 
      + ", depot=" + CommonHelper.isNotNull(depot) 
      + ", depotDeliveryMinimum=" + depotDeliveryMinimum 
      + ", preSelectedId=" + preSelectedId 
      + ", residentialAddresses=" + CommonHelper.isNotNull(residentialAddresses) 
      + ", residentialDeliveryMinimum=" + residentialDeliveryMinimum 
      + "]"; 

在此:

return new StringBuilder("AccountAddresses [") 
      .append(", corporateAddresses=").append(CommonHelper.isNotNull(corporateAddresses)) 
      .append(", corporateDeliveryMinimum=").append(corporateDeliveryMinimum) 
      .append(", depot=").append(CommonHelper.isNotNull(depot)) 
      .append(", depotDeliveryMinimum=").append(depotDeliveryMinimum) 
      .append(", preSelectedId=").append(preSelectedId) 
      .append(", residentialAddresses=").append(CommonHelper.isNotNull(residentialAddresses)) 
      .append(", residentialDeliveryMinimum=").append(residentialDeliveryMinimum) 
      .append("]").toString(); 
+0

你在用什麼編程語言?那是C#還是Java?您選擇了許多您忘記指定語言的其他標籤。 – 2011-02-02 06:20:53

+0

@Code Grey - 你可以在Eclipse中開發C#嗎?駱駝套也是贈品... ;-) – 2011-02-02 06:43:55

+4

有沒有你想要這樣做的原因?我相信,一旦Java編譯器完成它,你的兩個代碼塊或多或少都是相同的。 – 2011-02-02 07:07:59

回答

13

這是Eclipse的內置命令。

  • 點擊引號(「)在你的字符串連接中的一個。
  • 帶上Quick Fix菜單(按下鍵盤上Ctrl + 1)。
  • 選擇Use 'StringBuilder' for String concatenation

魔術!您的

return "foo" + "bar"; 

更改爲

StringBuilder stringBuilder = new StringBuilder(); 
    stringBuilder.append("foo"); 
    stringBuilder.append("bar"); 
    return stringBuilder.toString(); 
2

我還沒有聽說過一個Eclipse插件,這個的 - 可以隨意忽略這個題外話答案 - 但擁有的IntelliJ一個「意圖」,將爲你做(至少在10.0它)。有一個community edition可用,如果你想給它一個鏡頭。

0

爲什麼不重寫類中的toString方法,並實現stringbuilder追加。

1

做一個正則表達式搜索和替換:

", ([a-zA-z0-9]+)=" \+ CommonHelper\.isNotNull\(([a-zA-z0-9]+)\) // Find this 

append(", $1=").append(CommonHelper.isNotNull($2)) // and replace with this 

它是不完整的,但你的想法。

0

我不認爲有任何插件可以爲你做這個......反正它是無用的:Java編譯器會比任何人都做得更好(如果「StringBuilder」被更好的東西代替,Java如果你不明確地使用StringBuilder,編譯器將能夠使用這個「更好的東西」)。

相關問題