StringBuilder 的 append() 方法支持链式调用,因为它所有重载版本均返回 this(即当前 StringBuilder 实例),而非新对象,从而实现流式接口;可混合拼接多种类型并嵌入变量或表达式。

Java 中 StringBuilder 的 append() 方法返回的是当前对象本身(即 this),所以支持链式调用。这是因为它设计为“流式接口”(fluent interface),每个 append() 都修改原对象并返回自身,无需新建对象或重复写变量名。
为什么 append 能链式调用?
StringBuilder.append(...) 所有重载版本都声明为:
public StringBuilder append(...)
它不是返回新对象,而是直接在原 StringBuilder 实例上追加内容,并返回 this。这和 String 的不可变操作(每次拼接都生成新对象)完全不同。
立即学习“Java免费学习笔记(深入)”;
基本链式拼接写法
直接连续调用多个 append():
new StringBuilder().append("Hello").append(" ").append("World").toString();
等价于:
- 创建空
StringBuilder - 追加
"Hello"→ 内容变为"Hello" - 追加
" "→ 变为"Hello " - 追加
"World"→ 变为"Hello World" - 最后调用
toString()得到字符串
支持混合类型拼接
append() 有多种重载,可传入 String、int、boolean、char、Object 等,全部自动转为字符串并追加:
new StringBuilder().append("Age: ").append(25).append(", Active: ").append(true);
结果内容是:"Age: 25, Active: true"
结合变量和表达式使用
链式调用中可嵌入变量、方法调用或三元表达式,只要类型兼容:
StringBuilder sb = new StringBuilder();
sb.append("User: ").append(name).append(", Score: ").append(score > 90 ? "A" : "B");
注意:如果需要复用同一实例,建议先赋值给变量再链式调用,避免重复构造;若只用一次,直接 new + 链式更简洁。


















