모든 구체 클래스에서 Object의 toString을 재정의하자.
상위 클래스에서 이미 알맞게 재정의한 경우는 예외다.
toString을 재정의한 클래스는 클래스를 사용한 시스템을 디버깅하기 쉽게 해준다.
toString은 해당 객체에 관한 명확하고 유용한 정보를 읽기 좋은 형태로 반환해야한다.
Object의 기본 toString 메서드 사용 시 클래스이름@16진수로표시한_해시코드를 반환할 뿐이다.
toString을 잘 구현한 클래스는 사용하기 편하고 그 클래스를 사용한 시스템은 디버깅하기 쉽다.
println
, printf
, 문자열 연결 연산자(+)
, assert구문에 넘길 때
, 디버거가 객체를 출력할 때
하위 클래스들이 공유해야 할 문자 표현이 있으면 재정의하지만 아래와 같은 클래스들은 재정의하지 않아도 된다.
autoValue는 toString도 생성해준다. 각 필드의 내용을 멋지게 나타내 주기는 하지만 클래스의 ‘의미’까지 파악하지는 못한다.