본문 바로가기

STUDY/이펙티브자바

3-3) toString을 재정의 하라

toString

 

log.info("고객 객체 반환: {}", customer);

toString은 무시하기 쉬우나 생각보다 자주 사용되는 공통 메소드이다. API를 호출할 때 사용자에게 보여주는 반환값을 toString을 사용하여 보여줄 수 있고, 로그를 출력할 때 toString이 사용될 수 있다. 하지만 기본 Object의 toString은 "클래스명@해시코드값"으로 되어있어서 일반적인 기대값과는 다르다. 따라서 클래스를 만들 때 기대에 맞는 toString을 재정의하고 그 포맷을 사용자가 알 수 있도록 알려주어야 한다.

 

 


toString을 잘 정의한 사례

 

일자를 표현하는 클래스인 LocalDate가 toString을 잘 재정의한 사례이다. 먼저 일자의 핵심정보인 년/월/일이 모두 출력된다. 그리고 메소드에 주석을 적절히 달아두어서 "2022-08-31"과 같은 형식으로 출력된다는 것 또한 개발자가 쉽게 알 수 있다.

 

 


+lombok

 

@ToString
public class Customer {
	private String customerId;
    ...
}
728x90