Roo*_*kie 0 java stringbuilder tostring
从以下3种不同的实现中,哪一个看起来像一个基于可读性,性能等的好候选者?
实施例#1:
@Override
public String toString() {
return "GuiTemplateCriteriaImpl [appTitle=" + appTitle
+ ", button1Text=" + button1Text + ", button2Text="
+ button2Text + ", defaultMessageText=" + defaultMessageText
+ ", rootFolder=" + rootFolder + ", supportedFileExt="
+ supportedFileExt + ", list1ToolTipText=" + list1ToolTipText
+ ", list2ToolTipText=" + list2ToolTipText + "]";
}
Run Code Online (Sandbox Code Playgroud)
实施例#2:
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("GuiTemplateCriteriaImpl")
.append("[")
.append(" appTitle=" + appTitle)
.append(", button1Text=" + button1Text)
.append(", button2Text=" + button2Text)
.append(", defaultMessageText=" + defaultMessageText)
.append(", rootFolder=" + rootFolder)
.append(", supportedFileExt=" + supportedFileExt)
.append(", list1ToolTipText=" + list1ToolTipText)
.append(", list2ToolTipText=" + list2ToolTipText)
.append("]");
return builder.toString();
}
Run Code Online (Sandbox Code Playgroud)
实施例#3:
@Override
public String toString() {
return new StringBuilder()
.append("GuiTemplateCriteriaImpl")
.append("[")
.append(" appTitle=" + appTitle)
.append(", button1Text=" + button1Text)
.append(", button2Text=" + button2Text)
.append(", defaultMessageText=" + defaultMessageText)
.append(", rootFolder=" + rootFolder)
.append(", supportedFileExt=" + supportedFileExt)
.append(", list1ToolTipText=" + list1ToolTipText)
.append(", list2ToolTipText=" + list2ToolTipText)
.append("]")
.toString();
}
Run Code Online (Sandbox Code Playgroud)
围绕这种方法的其他任何最佳实践?请指教
谢谢!
示例1将为您使用单个StringBuilder幕后.示例2和3将编译为相同的字节码但使用更多的StringBuilders,在使用非文字Strings 时每个字符串连接一个,但是可以忽略此情况的开销.使用可以简化特定情况的代码可读性和可维护性的那个.
IMO你应该使用选项#4:
@Override
public String toString() {
return "GuiTemplateCriteriaImpl"
+ "["
+" appTitle=" + appTitle
+ ", button1Text=" + button1Text
+ ", button2Text=" + button2Text
+ ", defaultMessageText=" + defaultMessageText
+ ", rootFolder=" + rootFolder
+ ", supportedFileExt=" + supportedFileExt
+ ", list1ToolTipText=" + list1ToolTipText
+ ", list2ToolTipText=" + list2ToolTipText
+ "]";
}
Run Code Online (Sandbox Code Playgroud)