View

반응형

Object의 기본 toString 메서드가 우리가 작성한 클래스에 적합한 문자열을 반환하는 경우는 거의 없다.

Object.toString()은 [클래스이름]@[16진수로 표시한 해시코드]의 형태로 반환될 뿐이다.

toString() 일반 규약

1) 간결하면서 사람이 읽기 쉬운 형태의 유익한 정보를 반환해야 한다.

2) 모든 하위 클래스에서 이 toString 메서드를 재정의해야 한다.

실전에서 toString은 객체 내의 중요 정보를 전부 담아 반환하는 것이 좋다. toString을 잘 구현하면 사용하기 편하고 디버깅이 쉬워진다.

 

toString 구현 시 문서화 포맷 명시하는 경우

[장점]

1) 포맷을 명시하면 그 객체는 표준적이고, 명확하고, 사람이 읽을 수 있다.

2) 값 그대로 입출력에 사용하거나 CSV 파일과 같은 데이터 객체로 저장이 가능하다.

포맷을 명시하기로 결정했다면, 정적 팩터리나 생성자를 함께 제공해주면 좋다.

[단점]

1) 포맷을 한번 명시하면 그 포맷에 영구적으로 얽매이게 된다.

만약 클래스의 포맷을 바꾸게 되면 이 클래스를 사용하고 있던 코드들과 데이터는 엉망이 될 것이다.

 

포맷을 명시하지 않는 경우

포맷을 명시하지 않는다면 정보를 더 넣거나 포맷을 개선할 수 있는 유연성이 생긴다.

 

toString()이 반환한 값에 포함된 정보를 얻어올 수 있는 API를 제공하자.

반응형
Share Link

인기 글

최신 글

전체 방문자

Today
Yesterday