목차
반응형

@ToString
Sysout 등 toString()이 필요한 메서드를 자동으로 적용시킵니다.
클래스 내의 필드 값을 String으로 리턴받을 때 유용합니다.
* 리턴 값 : 클래스명(클래스 필드 = 값, 클래스 필드 = 값... )
@ToString 미적용 시
@Setter @RequiredArgsConstructor class Parent { int generation; private final int age; private final String name; }
출력 값
java
닫기Parent parent = new Parent(1, "John"); parent.setGeneration(1); System.out.println(parent); // out : Parent@5fd0d5ae, 기본 주소 값을 출력
@ToString 적용 시
java
닫기@ToString @Setter @RequiredArgsConstructor class Parent { int generation; private final int age; private final String name; }
출력 값
java
닫기Parent parent = new Parent(1, "John"); parent.setGeneration(1); System.out.println(parent); // out : Parent(generation=1, age=1, name=John)
@ToString의 부가 설정 기능
exclude
특정 필드를 toString에서 제외할 때 사용합니다.
java
닫기@ToString(exclude = "generation") @Setter @RequiredArgsConstructor class Parent { int generation; private final int age; private final String name; }
출력 값
java
닫기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; }
출력 값
java
닫기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; }
출력값
java
닫기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 |