我的方法需要返回一个从字符串连接的字符串。
StringBuilder sb = new StringBuilder();
sb.append("count: ").append(this.count()).append( "\n");
return sb.toString();
在IntelliJ中,代码检查建议我用下面的字符串替换这个StringBuilder:
String sb = "count: " + this.count() + "\n";
return sb
我的印象是StringBuilder应该与append方法一起使用,用加号替换字符串连接。这段代码检查建议在IntelliJ中是否有意义?
答案 0 :(得分:2)
你的假设是正确的,大多数IntelliJ 检查鼓励你做更好的事情。方式。
然而,情况并非总是如此。特别是在一些检查工作的情况下,两种方式都可以。 - >你必须自己判断什么是更好的"。
在这种情况下,如果以普通的连接字符串开头:
return "count: " + count + "\n";
有一些检查可用 - 将光标放在"count: "
上并点击alt-enter:
如果你选择选项(2),你会得到:
return new StringBuilder().append("count: ").append(count).append("\n").toString();
现在,您可以再次使用alt-enter选择"将StringBuilder替换为String"扭转变化。
在这种情况下,您发现了一种双向的检查/重构:它可以双向工作。其他重构(例如" Encapsulate")只能以一种方式工作。
至于什么是"更好" - 你必须权衡StringBuilder
与可读性和简单性的表现,并自己做出判断 - IntelliJ只是提供方便的检查来帮助你;)