개발 기록
[이펙티브자바] 아이템12 본문
(12) toString을 항상 재정의하라
[toString의 일반 규약]
- 간결하면서 사람이 읽기 쉬운 형태의 유익한 정보를 반환해야한다
- 모든 하위 클래스에서 이 메서드를 재정의하라
[호출]
-println, printf, 문자열 연결 연산자(+), assert 구문에 넘길 때, 혹은 디버거가 객체를 출력할 때 자동으로 사용됨
-> toString을 제대로 재정의하지 않으면 쓸모없는 메시지만 로그에 남을 것이다.
[메서드 구현시 고려사항]
1. 그 객체가 가진 주요 정보 모두를 반환하는 게 좋다.
-- 그렇지 않았을 때의 문제점 : 왜 실패 했는지 알 수 없음
Assertion failure: expected {abc, 123}, but was {abc, 123}.
// 단언 실패: 예상값 {abc, 123}, 실젯값 {abc, 123}.
-- 객체가 거대하거나 문자열로 표현하기에 적합하지 않다면 요약 정보를 담아야한다.
전화번호부(총 1487536개)”나 “Thread[main,5,main]”
2. 반환값의 포캣을 문서화할지 정해야 한다.
3. 포맷을 명시하지 않아도 의도는 명확히 밝혀야 한다.
/**
* 이 약물에 관한 대략적인 설명을 반환한다.
* 다음은 이 설명의 일반적인 형태이나,
* 상세 형식은 정해지지 않았으며 향후 변경될 수 있다.
*
* "[약물 #9: 유형=사랑, 냄새=테레빈유, 겉모습=먹물]"
*/
@Override public String toString() { ... }
'JAVA' 카테고리의 다른 글
[이펙티브 자바] 아이템 18 (0) | 2024.11.04 |
---|---|
[이펙티브 자바] 아이템 15 (0) | 2024.10.29 |
[이펙티브 자바] 아이템 11 (1) | 2024.10.15 |
[이펙티브 자바] 아이템 7,8 (2) | 2024.10.03 |
[이펙티브 자바] 아이템 6 (1) | 2024.10.03 |
Comments