오늘은 toString 메서드에 대해 정리하고자한다.
보통 객체의 toString 메서드를 호출하면 default 값으로 아래와 같은 형태로 값이 리턴된다.
className@16진수hashcode값
허나 많은 회사에서 toString 메서드를 오버라이딩하는 경우가 많은데, toString을 오버라이딩 하면 굉장히 많은 이점을 얻을 수 있다. 예를 들어 정말 필요한 정보를 보기 쉽게 제공하게 만들어줘서 다양한 상황에서 오류트래킹이나 디버깅이 쉽게 되도록 도와줄 수가 있다. 또한 로깅이 필요할 때는 toString을 오버라이딩하면 최적화된 로그를 남길수가 있다.
Effective Java의 책에 나온 것처럼 직접 toString 메서드를 재정의 해줄 수도 있지만, Lombok을 이용한다면 아주 최적화된 toString 메서드를 호출 할 수가 있다.
@AllArgsConstructor
@ToString
public class Member {
private Long id;
private String name;
private String email;
}
만약에 특정 필드를 제외하고 싶다면 아래와 같이 2가지 방법으로 제외가 가능하다.
@AllArgsConstructor
@ToString(exclude = {"email"})
public class Member {
private Long id;
private String name;
private String email;
}
@AllArgsConstructor
@ToString
public class Member {
private Long id;
private String name;
@ToString.Exclude private String email;
}
보통 2번째 방법을 선호하니 참고해두자.
반응형
'Programming > JAVA' 카테고리의 다른 글
[Effective java] 객체 순서 비교하기 - compareTo (0) | 2023.02.04 |
---|---|
[Effective java] 공통 메서드 정리 - clone (1) | 2023.02.02 |
[Effective Java] 공통 메서드 정리 - equals() & hashCode() (0) | 2023.02.01 |
[Effective Java] Try-finally 대신 Try-with-Resources로 자원 해제하기 (0) | 2023.01.31 |
[Effective Java] Primitive Type 과 Wrapper Class (0) | 2023.01.30 |
댓글