new StringBuilder().append("DEF");의 타입은 StringBuilder라서
StringBuilder a = new StringBuilder().append("DEF");
이렇게 할수있음. 스트링빌더 객체의 append 메서드를 써도 리턴타입이 스트링빌더임
String a = new StringBuilder().append("DEF");
이렇게 String 타입에 대입 못함
StringBuilder a = new StringBuilder().append("DEF").insert(0, "ABC");
이것도 스트링빌더인 상태에서 append를 했으니 스트링빌더 타입이고 거기서 다시한번 insert해도 스트링빌더임. insert() 메서드의 리턴타입이 스트링빌더니까
스트링 빌더 객체의 toString메서드를 호출하면 그건 리턴타입이 String임
그래서 그 책에 있는 코드가 그게 가능한거임
매개변수 얘기는 할필요없음. 용어가 헷갈리면 앞에 내용들 한번 복습해보셈
+)
StringBuilder b = new StringBuilder().append("DEF");
StringBuilder a = b.insert(0, "ABC");
이거를
StringBuilder a = new StringBuilder().append("DEF").insert(0, "ABC");
이렇게 쓸수 있다는것도 이해하셈(세세한 차이는 스킵)
StringBuilder a = new StringBuilder().append("DEF");
이렇게 할수있음. 스트링빌더 객체의 append 메서드를 써도 리턴타입이 스트링빌더임
String a = new StringBuilder().append("DEF");
이렇게 String 타입에 대입 못함
StringBuilder a = new StringBuilder().append("DEF").insert(0, "ABC");
이것도 스트링빌더인 상태에서 append를 했으니 스트링빌더 타입이고 거기서 다시한번 insert해도 스트링빌더임. insert() 메서드의 리턴타입이 스트링빌더니까
스트링 빌더 객체의 toString메서드를 호출하면 그건 리턴타입이 String임
그래서 그 책에 있는 코드가 그게 가능한거임
매개변수 얘기는 할필요없음. 용어가 헷갈리면 앞에 내용들 한번 복습해보셈
+)
StringBuilder b = new StringBuilder().append("DEF");
StringBuilder a = b.insert(0, "ABC");
이거를
StringBuilder a = new StringBuilder().append("DEF").insert(0, "ABC");
이렇게 쓸수 있다는것도 이해하셈(세세한 차이는 스킵)
아 여기 설명 잘 해놨네
캬 친절하다
근데 저렇게 체이닝메서드를 쓰면 StringBuilder 인스턴스가 여러번 생성돼서 마지막 결과값 반환하는거임? 체이닝메서드를 할때마다 인스턴스 생성해서 메서드에 맞게 메타 정보 주입한 다음에 다음 연결된 메서드에 넘기는건가?
참조를 리턴하는 거라 인스턴스는 하나임. 뭐 불변 객체라면 매번 새로 생성할 수도 있긴한데 본적은 없음
와 이렇게까지.. 진짜 감사합니다!!!! 다른 곳 찾아봐도 이해가 잘 안됐거든요
와.. 이렇게 생각하면 되는거군요
단번에 이해됨