Java ‐ toString을 항상 재정의하라[Effective Java Item 12] - dnwls16071/Backend_Summary GitHub Wiki

toString을 항상 재정의하라

  • Object의 기본 toString 메서드는 적합한 문자열을 반환하는 경우가 거의 없다.(기본적으로)
  • 단순히 클래스_이름@16진수로 표현한 해시 코드를 반환할 뿐이다.
  • toString의 일반 규약에 따르면 '간결하면서 사람이 읽기 쉬운 형태의 유익한 정보'를 반환해야 한다.
  • equals, hashCode만큼 중요한 것은 아니나 toString을 잘 구현한 클래스는 사용하기 훨씬 편하고 그 클래스를 사용한 시스템은 디버깅하기가 쉽다.
  • 실전에서 toString은 그 객체가 가지는 주요 정보 모두를 반환하는 게 좋다.
  • 또한 포맷을 명시하든 아니든 개발자 본인의 의도를 명확히 밝혀야 한다.
// Good
// toString() 메서드 재정의
@Override
public String toString() {
    // 객체의 상태를 의미 있는 문자열로 반환
    return "Person{" +
           "name='" + name + '\'' +
           ", age=" + age +
           '}';
}