
string buffer 가 가지고 있는 메서드들은 대부분 자기 자신을 반환한다.
method Chaining
자기자신을 리턴하여 계속해서 자신의 메소드를 호출하는 방식
아래 코드를 참고해보자.
public class StringBufferExam {
public static void main(String[] args) {
StringBuffer sb2 = new StringBuffer();
StringBuffer sb3 = sb2.append("Hi");
if(sb2==sb3){
System.out.println("True");
}
else {
System.out.println("False");
}
}
}
sb3 에서 sb2.append( ) 가 끝난 이후에 자기자신 즉, sb2 를 반환했을 것이다. (method Chaining)
그러므로 if 문의 결과로는 True 가 나와야 맞다.
실제로 작동해보면 True 가 나온다.

이로써 StringBuffer 는 자기 자신을 반환함을 알 수 있다.
자기 자신을 반환 가능하다는 말은 아래 코드도 가능하다는 소리이다.
public class StringBufferExam {
public static void main(String[] args) {
StringBuffer sb4 = new StringBuffer();
String str2 = sb4.append("Hello").append(" ").append("World").toString();
System.out.println(str2);
}
}
append( ) 다음 또 자기 자신을 반환하기 때문에 다시 append 를 쓸 수 있다.
원래라면 아래 처럼 썼어야 했는데 더욱 간편하게 쓸 수 있다.
public class StringBufferExam {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("Hello");
sb.append(" ");
sb.append("world");
String str1 = sb.toString();
System.out.println(str1);
}
}
public class StringBufferExam {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("Hello");
sb.append(" ");
sb.append("world");
String str1 = sb.toString();
System.out.println(str1);
StringBuffer sb2 = new StringBuffer();
StringBuffer sb3 = sb2.append("Hi");
if(sb2==sb3){
System.out.println("True");
}
else {
System.out.println("False");
}
StringBuffer sb4 = new StringBuffer();
String str2 = sb4.append("Hello").append(" ").append("World").toString();
System.out.println(str2);
}
}
