DTO 구현을 위해 getter, setter과 같은 데이터 처리 혹은 특정 연산을 수행하기 위해 오버라이드된 메서드를 반복해서 작성하게 된다.
record는 Java 14에서 도입된 기능으로,
불변 객체(immutable object)를 간단하게 정의할 수 있는 새로운 클래스 유형이다.
일반적인 class보다 적은 코드로 데이터를 저장하는 목적의 클래스를 쉽게 만들 수 있다.
class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
}
위 코드에서는 생성자, getter, toString()을 수동으로 작성해야 한다.
record Person(String name, int age) {}
Person p = new Person("Alice", 25);
System.out.println(p.name()); // getter 메서드 역할 (name)
System.out.println(p.age()); // getter 메서드 역할 (age)
System.out.println(p); // 자동 생성된 toString()