이펙티브 자바:: 아이템 12 <toString을 항상 재정의하라>
🙉

이펙티브 자바:: 아이템 12 <toString을 항상 재정의하라>

Created
Aug 13, 2024 07:34 AM
Last edited time
Last updated August 22, 2024
Tags
Language
Language
Java
URL

Intro::

이펙티브 자바 정리본입니다.
 

toString을 재정의 해야하는 이유

  • Object의 기본 toString 메서드는 일반적으로 클래스에 적합한 문자열을 반환하지 않는다. 단순히 클래스_이름@16진수로_표시한_해시코드를 반환할 뿐이다.
  • toString을 잘 구현한 클래스는 사용하기 훨씬 용이하고, 그 클래스를 사용한 시스템은 디버깅하기 쉽습니다.
 

toString 어떻게 재정의하면 좋은가

  • toString은 그 객체가 가진 주요 정보 모두를 반환하는게 좋습니다. 만약 객체가 거대하거나 객체의 상태가 문자열로 표현하기에 적합하지 안하면 요약 정보를 담는 것이 좋습니다.
  • toString을 구현할 때면 반환값의 포맷을 문서화할지 정해야 합니다.
  • 포맷을 명시하든 아니든 의도는 명확하게 밝혀야 합니다.
  • toString이 반환한 값에 포함된 정보를 얻어올수 있는 API를 제공하는게 좋습니다. 그렇지 않다면 이 정보가 필요한 프로그래머는 toString의 반환값을 파싱할 수 밖에 없습니다.
  • 정적 유틸리티 클래스의 경우 toString을 제공해야 할 이유가 없고, 대부분의 열거 타입도 자바가 이미 완벽한 toString을 제공하기 때문에 따로 정의하지 않아도 됩니다. 하지만 하위 클래스들이 공유해야 할 문자열 표현이 있는 추상 클래스라면 toString을 재정의해줘야 합니다.
 
 

References::

이펙티브 자바 / 조슈아 블로크 지음 (프로그래밍 인사이트)

Loading Comments...