可以,StringBuffer 是支持“链式调用”的,但前提是你调用的方法本身返回的是 StringBuffer 对象。
链式调用的本质是:方法返回一个对象(通常是 this),然后可以继续调用该对象的方法。
StringBuffer 的很多修改方法都返回 this(即当前 StringBuffer 对象),例如:
append(...)insert(...)delete(...)reverse()replace(...)StringBuffer sb = new StringBuffer();
sb.append("Hello")
.append(" ")
.append("World")
.insert(5, ",")
.reverse();
System.out.println(sb);
上面这些 append、insert、reverse 都返回 StringBuffer,所以可以一直“点”下去。
不是所有方法都能链式
sb.length(); // 返回 int,不能继续链式
sb.toString(); // 返回 String,也不能继续链式
StringBuffer vs StringBuilder
StringBuffer:线程安全,方法加了 synchronizedStringBuilder:非线程安全,但更快和 String 的区别
String s = "a";
s.concat("b").concat("c"); // String 也能链式,但每次都返回新对象
StringBuffer/StringBuilder 是在原对象上修改,效率更高。
✅ StringBuffer 可以链式调用
✅ 前提是调用的方法返回 StringBuffer
✅ 常见如 append / insert / delete / reverse 都支持
如果你愿意,我也可以帮你对比 StringBuffer 和 StringBuilder 的链式写法差异。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。