728x90
반응형
업무 중에 습관적으로 toString을 쓰곤 했다. 객체의 값을 확인하거나. 아무생각없이 리스트의 목록을 값을 확인해볼때에도, 디버깅 할때에도 로그를 toString으로 쓰면서 디버깅 해본적도 꽤많았다.
Object 의 기본 toString 메서드는 상당히 불편하다.
리액트로 개발을 할 때에는 자바스크립트에서 대충 console.log를 찍으며,
디버깅을 해도 값을 모두 확인해서 나름 편리하다? 라고 생각하며 개발을 했었기에,
다시 자바로 돌아와 개발 할 때에는 불편함을 더 많이 느꼈다.
앞 장인 equals 와 hashCode 아이템만큼의 중요성은 없지만 스스로 아무 생각없이 쓰던 함수이기에 정리해본다.
새로이 알게 된 내용은 다음과 같다.
- 사용자가 직접 호출하지 않더라도 java 어딘가에서 상당히 많이 쓰인다.
- 사용자가 작성한 객체를 참조하는 컴포넌트가 오류 메세지를 로깅 할 때 자동으로 호출된다.
PhoneNumber용 toString을 제대로 재정의했다면
다음 코드만으로 문제를 단하기에 충분한 메시지를 남길 수 있다.
System.out.println(phondMumber 수 ''에 연결할 수 없습니다.'');
map 객체를 출력했을 때 {Jenny=PhoneNumber@adbbd}보다는,
{Jenny=707-867-53@9}라는 메시지가 나오는 게 훨씬 반갑지 않겠는가?
책의 저자는 위와 같은 방식을 제안했고 toString을 구현한다면 반환값 포맷을 규약으로 남기길 정하는게 좋다고 했다.
// 기대값 : xxxyyy , 실젯값 yyyttt
320x100
반응형
'Effective Java' 카테고리의 다른 글
[아이템 50] 적시에 방어적 복사본을 만들라 (0) | 2023.07.24 |
---|---|
[아이템 18] 상속보다는 컴포지션을 사용하라 (0) | 2023.04.06 |
[아이템 13] clone 재정의는 주의해서 진행하라 (0) | 2023.02.15 |