【发布时间】:2018-09-22 08:57:22
【问题描述】:
我编写了一些创建大量字符串的代码。为了避免一遍又一遍地创建昂贵的字符串,我使用了 java StringBuilder 类。
我的代码有点像这样:
public String createString(){
StringBuilder stringBuilder = new StringBuilder();
for(int i = 0; i < Integer.MAX_VALUE ; i++){ //its not actually this, but it's a large loop.
stringBuilder.append(appendString())
}
return stringBuilder.toString();
}
appendString 方法还实例化 StringBuilder 并附加到它。
为了节省时间,我注意到我可以让我的appendString 方法返回StringBuilder,而不是String,这样可以避免使用.toString() 方法返回stringBuilder,如下所示:
public StringBuilder appendString(){
StringBuilder appendBuilder = new StringBuilder();
appendBuilder.append("whatever");
return appendBuilder;
}
这一切都很好,直到我查看了StringBuilder 文档并意识到StringBuilder 类上没有append(StringBuilder stringBuilder) 方法,只有append(String string)。
所以我的问题是,这段代码是如何运行的?是否将StringBuilder 转换为String?
【问题讨论】:
标签: java string stringbuilder