[Effective Java 3/e] 아이템 12 - toString을 항상 재정의하라


아이템 12 - toString을 항상 재정의하라

  • toString은 그 객체가 가진 주요 정보 모두를 반환하는게 좋다.
  • 모든 구체 클래스에서 Object의 toString을 재정의하자.
  • 상위 클래스에서 이미 재정의한 경우는 예외다.
  • toString은 해당 객체에 관한 명확하고 읽기 좋은 형태로 반환해야 한다.
  • 포맷을 명시하든 아니든 의도는 명확히 밝혀야 한다.

포맷 명시

/**
* 전화번호의 문자열 표현을 반환하다.
* 문자열은 "XXX-YYY-ZZZZ" 형태의 12글자로 구성된다.
* XXX는 지역 코드, YYY는 프리픽스, ZZZZ는 가입자 번호다.
* 각각의 대문자는 10진수 숫자 하나를 나타낸다.
*/
@Override public String toString() {
  return String.format("%03d-%03d-%04d", areaCode, prefix, lineNum);
}

포맷 명시하지 않음

/**
* 약물에 관한 대략적인 설명을 반환한다.
* "[약물 #9: 유형=사람, 냄새=테레빈유, 겉모습=먹물]"
*/
@Override public String toString() { ...}