🖥️ Back/Spring
@AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor
지구용사
2024. 7. 2. 10:27
Lombok에서 제공하는 어노테이션으로 굉장히 편안하다..👍
그러던 중에 무분별하게 사용하는 것같아 이번에 정리를 해둘려한다.
@AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 생성
@NoArgsConstructor : 파라미터가 없는 디폴트 생성자를 생성
@RequiredArgsConstructor : final이나 @NonNull으로 선언된 필드만을 파라미터로 받는 생성자를 생성
아래 코드를 통해 자세히 살펴본다.
@AllArgsConstructor
클래스의 모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성한다.
이 어노테이션을 사용하면, 클래스의 모든 필드를 한 번에 초기화할 수 있다.
@AllArgsConstructor
public class Person {
private String name;
private int age;
}
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
@NoArgsConstructor
파라미터가 없는 디폴트 생성자를 자동으로 생성한다.
이 어노테이션을 사용하면 클래스에 명시적으로 선언된 생성자가 없더라도 인스턴스를 생성할 수 있다.
@NoArgsConstructor
public class Person {
private String name;
private int age;
}
public class Person {
private String name;
private int age;
public Person(){}
}
@RequiredArgsConstructor
final이나 @NonNull으로 선언된 필드만을 파라미터로 받는 생성자를 자동으로 생성한다.이 어노테이션을 사용하면 클래스가 의존하는 필드를 간단하게 초기화할 수 있다.
@RequiredArgsConstructor
public class Person {
private final String name;
private final int age;
private String address;
}
public class Person {
private final String name;
private final int age;
private String address;
public Person(final String name, final int age) {
this.name = name;
this.age = age;
}
}