프로그래밍/Spring

@AllArgsConstructor 유의사항

Yanoo 2022. 3. 12. 23:56
728x90
반응형
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 는 사용하는 것을 이런 이유로 권장하지 않는다고 한다.

728x90
반응형