-
이펙티브 자바 Item 12 - toString은 항상 재정의하라언어/Effective Java 2024. 5. 29. 14:25
Object의 기본 toString은 클래스_이름@16진수로_표시한_해시코드를 반환한다.
toString 규약
- 사람이 읽기 쉬운 정보를 반환하라
- 모든 하위 클래스에서 재정의하라
toString 메서드는 객체를 println,printf 문자열 연결, assert 구문에 넘길 때, 디버거가 객체를 출력할 때 자동으로 사용된다.
좋은 toString은 이 인스턴스를 포함하는 객체에서 유용하게 쓰인다.
toString() 메서드 재정의 시 주의점
- 객체가 가진 주요 정보는 모두 보여주는 것이 좋다.
- 정보가 너무 많을 때는 간단히 요약된 정보를 보여줄 수도 있다.
- 포맷을 명시하기로 했으면, 명시한 포맷에 맞는 문자열과 객체를 상호전환 할 수 있는 정적 팩토리나 생성자 함께 제공하면 좋다.
- toString이 반환한 값에 포함된 정보를 얻어올 수 있는 API를 제공하자 (Getter같은거 만들어 두자는 뜻)
toString 재정의가 필요 없는 경우
- 정적 유틸리트 클래스
- 열거 타입 : 이미 완벽한 toString 제공함
'언어 > Effective Java' 카테고리의 다른 글
이펙티브 자바 Item 14 - Comparable을 구현할지 고려하라 (0) 2024.05.29 이펙티브 자바 Item 13 - clone 재정의는 주의해서 진행하라 (0) 2024.05.29 이펙티브 자바 Itme 10 - equals는 일반 규약을 지켜 재정의 하라 (0) 2024.05.28 이펙티브 자바 Item 11 - equals를 재정의하려거든 hashCode도 재정의하라 (0) 2024.05.28 이펙티브 자바 Item 9 - try-finally 대신 try-with-resources를 사용하라 (0) 2024.05.28