반응형
@NoArgsConstructor
- No Argument Constructor, 파라미터가 없는 생성자를 만든다.('인수'라고 해야할지, '파라미터'라고 해야할지..)
- 만약 필드가 final로 설정되어 있는 경우 컴파일러 에러가 발생한다. 필드가 final로 설정되어 있는 경우@NoArgsConstructor(force = true)옵션을 사용하면 final 필드를 0,false,null 등으로 강제 초기화를 하여 생성자를 만들 수 있다.
@NoArgsConstructor
public class Employee {
private String name;
private int salary;
}
public class Employee {
private String name;
private int salary;
// 인수 없는 생성자가 생성되었다.
public Employee() {
}
}
@RequiredArgsConstructor
- final 필드 또는 @NonNull이 적용된 필드에 대한 인수가 포함된 생성자를 생성한다.
@RequiredArgsConstructor
public class Employee {
private final String name;
private int salary;
}
public class Employee {
private final String name;
private int salary;
// final 필드 인수만 적용된 생성자
public Employee(String name) {
this.name = name;
}
}
@AllArgsConstructor
- 모든 필드에 대한 생성자를 생성한다.
- 이 어노테이션으로 생성자를 생성할 때 모든 필드값이 적용되어야 한다.
@AllArgsConstructor
public class Employee {
private String name;
private int salary;
}
public class Employee {
private String name;
private int salary;
// 모든 필드값이 적용된 생성자
public Employee(String name, int salary) {
this.name = name;
this.salary = salary;
}
}
참고
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor (projectlombok.org)
반응형
'Programming > 기초지식' 카테고리의 다른 글
URI 그리고 URL (0) | 2021.09.03 |
---|---|
Parameter와 Argument의 차이점 (0) | 2021.08.25 |
[Gradle] Could not find method compile() arguments~ (0) | 2021.08.17 |
클래스 vs 객체(오브젝트) vs 인스턴스 각각의 차이점 (0) | 2021.08.12 |
Servlet은 무엇일까(등장배경 및 동작과정) (0) | 2021.08.11 |