public class TestApp {
public static void main(String[] args) {
User user = new User("kim", "서울");
System.out.println("user = " + user);
}
}
import lombok.AllArgsConstructor;
@AllArgsConstructor
public class User {
private String name;
private String address;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", address='" + address + '\'' +
'}';
}
}
이렇게 코드가 있다고 하자.
출력을 확인해 보면
로 제대로 출력되는 것을 확인할 수 있다.
그런데 만약 리팩토링을 하다가 User의 address의 자리를 바꾸게 되면? 즉,
private String name;
private String address;
에서
private String address;
private String name;
로 바뀌게 된다면
이렇게 반대로 출력되게 된다. 그래서 @AllArgsConstructor 는 유의해서 써야한다.
그리고 @AllArgsConstructor 는 사용하는 것을 이런 이유로 권장하지 않는다고 한다.
[ 스프링 데이터 JPA ] 네이티브 쿼리 사용하기 (0) | 2022.04.14 |
---|---|
상속 관계에서 @Builder 적용 (0) | 2022.03.24 |
[ Spring ] DI 컨테이너 싱글톤 방식의 문제점 (0) | 2022.02.05 |
[ Spring ] DI 컨테이너와 싱글톤 (0) | 2022.02.04 |
[ JPA ] Named Query (0) | 2022.02.03 |