我写了一些代码,其中有很多字符串创建。为了避免重复进行昂贵的字符串创建,我正在使用 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
?