gpt4 book ai didi

java - 首选 toString() 实现?

转载 作者:行者123 更新时间:2023-12-01 07:23:16 27 4
gpt4 key购买 nike

从以下 3 种不同的实现中,从可读性、性能等角度来看,哪一种看起来是一个不错的候选方案?

示例#1:

@Override
public String toString() {
return "GuiTemplateCriteriaImpl [appTitle=" + appTitle
+ ", button1Text=" + button1Text + ", button2Text="
+ button2Text + ", defaultMessageText=" + defaultMessageText
+ ", rootFolder=" + rootFolder + ", supportedFileExt="
+ supportedFileExt + ", list1ToolTipText=" + list1ToolTipText
+ ", list2ToolTipText=" + list2ToolTipText + "]";
}

示例#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();
}

示例#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();
}

围绕此方法还有其他最佳实践吗?请指教

谢谢!

最佳答案

示例 1 将在幕后为您使用单个 StringBuilder。示例 2 和 3 将编译为相同的字节码,但使用更多的 StringBuilder,当使用非文字 String 时,每个字符串连接一个,但开销 对于这种情况可以忽略。针对您的具体情况,使用能够简化代码可读性和可维护性的方法。

IMO 你应该使用选项#4:

@Override
public String toString() {
return "GuiTemplateCriteriaImpl"
+ "["
+" appTitle=" + appTitle
+ ", button1Text=" + button1Text
+ ", button2Text=" + button2Text
+ ", defaultMessageText=" + defaultMessageText
+ ", rootFolder=" + rootFolder
+ ", supportedFileExt=" + supportedFileExt
+ ", list1ToolTipText=" + list1ToolTipText
+ ", list2ToolTipText=" + list2ToolTipText
+ "]";
}

关于java - 首选 toString() 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30441993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com