짧은 코멘트
- lombok의
@ToString
을 사용하면 Object의 toString을 쉽게 재정의할 수 있다. - 모든 객체에
@ToString
을 붙일 필요는 없지만, DTO에 붙이는 것은 디버깅시 꽤 유용했던 경험이 많다.
toString을 항상 재정의 하라
Object 클래스의 기본 메소드 toString은 클래스이름@해시코드를 반환한다. 때문에 모든 클래스의 toString은 항상 재정의 하는 것이 좋다. 심지어 Object 클래스의 tostring의 규약은 “모든 하위 클래스에서 이 메소드를 재정의하라”이기도 하다.
toString은 그 객체가 가진 주요 정보 모두를 반환하는 게 좋다. 또한 toString을 작성할 때 의도를 명확히 밝혀야 한다.
포맷 명시
toString을 구현할 때면 반환값의 포맷을 문서화할지 정해야 한다.
포맷을 문서화하기로 정했다면, 명시에 포맷에 맞는 문자열과 객체를 상호전환할 수 있는 정적 팩토리나 생성자를 함께 제공해 주면 좋다. 자바 플랫폼의 많은 값 클래스가 따르는 방식이기도 하다.
또한 포맷 명시 여부와 상관없이 toString이 반환한 값에 포함된 정보를 얻어올 수 있는 API를 제공하는 것이 좋다
'개발 공부 기록하기 > 01. JAVA & Kotlin' 카테고리의 다른 글
짧은 코멘트와 함께하는 이펙티브 자바) #14 Comparable을 구현할지 고려하라 (0) | 2020.10.06 |
---|---|
짧은 코멘트와 함께하는 이펙티브 자바) #13 clone 재정의는 주의해서 진행하라 (0) | 2020.10.05 |
짧은 코멘트와 함께하는 이펙티브 자바) #11 equals를 재정의하려거든 hashCode도 재정의하라 (0) | 2020.09.29 |
짧은 코멘트와 함께하는 이펙티브 자바) #10 equals는 일반 규약을 지켜 재정의하라 (0) | 2020.09.28 |
짧은 코멘트와 함께하는 이펙티브 자바) #9 try-finally 보다는 try-with-resources를 사용하라 (0) | 2020.09.26 |