728x90
@ToString
Sysout 등 toString()이 필요한 메서드를 자동으로 적용시킵니다.
클래스 내의 필드 값을 String으로 리턴받을 때 유용합니다.
* 리턴 값 : 클래스명(클래스 필드 = 값, 클래스 필드 = 값... )
@ToString 미적용 시
@Setter
@RequiredArgsConstructor
class Parent {
int generation;
private final int age;
private final String name;
}
출력 값
Parent parent = new Parent(1, "John");
parent.setGeneration(1);
System.out.println(parent);
// out : Parent@5fd0d5ae, 기본 주소 값을 출력
@ToString 적용 시
@ToString
@Setter
@RequiredArgsConstructor
class Parent {
int generation;
private final int age;
private final String name;
}
출력 값
Parent parent = new Parent(1, "John");
parent.setGeneration(1);
System.out.println(parent);
// out : Parent(generation=1, age=1, name=John)
@ToString의 부가 설정 기능
exclude
특정 필드를 toString에서 제외할 때 사용합니다.
@ToString(exclude = "generation")
@Setter
@RequiredArgsConstructor
class Parent {
int generation;
private final int age;
private final String name;
}
출력 값
Parent parent = new Parent(1, "John");
parent.setGeneration(1);
System.out.println(parent);
// out : Parent(age=1, name=John)
of
특정 필드만을 toString에 포함할 때 사용합니다.
@ToString(of = {"generation", "age"})
@Setter
@RequiredArgsConstructor
class Parent {
int generation;
private final int age;
private final String name;
}
출력 값
Parent parent = new Parent(1, "John");
parent.setGeneration(1);
System.out.println(parent);
// out : Parent(generation=1, age=1)
callSuper
true로 설정 시 부모 클래스의 toString 메소드로 호출합니다. 기본값은 false입니다.
CallSuper = false
@ToString(callSuper = false)
class Child extends Parent {
public Child(int generation, int age, String name) {
super(generation, age, name);
}
}
출력 값
Child child = new Child(2, 12, "Johnson");
System.out.println(child);
// out : Child()
CallSuper = true
@ToString(callSuper = true)
class Child extends Parent {
public Child(int generation, int age, String name) {
super(generation, age, name);
}
}
출력 값
Child child = new Child(2, 12, "Johnson");
System.out.println(child);
// out : Child(super=Parent(generation=2, age=12, name=Johnson))
includeFieldNames
true 로 설정 시 필드의 이름을 함께 출력합니다. 기본값은 true입니다.
includeFieldNames = false
@ToString(includeFieldNames = false)
@Setter
@AllArgsConstructor
class Parent {
int generation;
private final int age;
private final String name;
}
출력값
Parent parent = new Parent(1, 42, "John");
System.out.println(parent);
// out : Parent(1, 42, John)
'DEV > Java' 카테고리의 다른 글
[Java][Lombok] @Builder와 @ToBuilder의 이해 (1) | 2023.11.30 |
---|---|
[java] 가변 인자(variable args) 설명 및 예시 (1) | 2023.11.10 |
[java] 스트림 도전기 (3 / 3) - 스트림 생성 ~ 연산까지 (0) | 2023.10.26 |
[java] json.simple 활용 JSON 데이터 저장, 불러오기 (0) | 2023.10.25 |
[java] NoSuchElementException 예외의 이해와 발생사례 (1) | 2023.10.25 |