2011-02-02 58 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,编译器将能够使用这个“更好的东西”)。

相关问题