반응형

@Data, @AllArgsConstructor, @NoArgsConstructor는

 

Lombok이라는 라이브러리에서 제공하는 애노테이션으로, 클래스의 Getter/Setter 메소드, 생성자 등을 자동으로 생성해주는 기능을 제공한다.

 

@Data

클래스 내의 모든 필드에 대해 Getter, Setter, toString, equals, hashCode 메소드를 자동으로 생성해준다.

@Data
public class Person {
    private String name;
    private int age;
    private String email;
}

Person person = new Person();
person.setName("John");
person.setAge(30);
person.setEmail("john@example.com");
System.out.println(person.getName()); // "John"
System.out.println(person.getAge()); // 30
System.out.println(person.getEmail()); // "john@example.com"

 

@AllArgsConstructor

모든 필드를 인자로 받는 생성자를 자동으로 생성해준다.

@Data
@AllArgsConstructor
public class Person {
    private String name;
    private int age;
    private String email;
}

Person person = new Person("John", 30, "john@example.com");
 

@NoArgsConstructor

 파라미터가 없는 기본 생성자를 자동으로 생성해준다.

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private String name;
    private int age;
    private String email;
}

Person person1 = new Person(); // 파라미터가 없는 생성자 호출
Person person2 = new Person("John", 30, "john@example.com");

 

위의 예제에서는 Lombok을 사용하여 클래스의 Getter/Setter 메소드와 생성자를 자동으로 생성한다.

이를 통해, 코드의 길이를 줄일 수 있고, 코드의 가독성을 높일 수 있다.

 

또한, 필드의 추가/삭제 등의 변경 사항이 있을 때 Getter/Setter 메소드와 생성자 등을 수동으로 수정할 필요가 없기 때문에, 코드의 유지 보수성이 향상된다.

반응형