record class
- 데이터 전용 클래스
- 순수하게 데이터를 보유하기 위한 클래스
- 불필요한 코드를 줄이고 간결한 코드 작성을 가능하게 해준다
- DTO 클래스를 생성할 때 주로 사용
- Java 14부터 도입, Java 16에서 정식 스펙으로 포함
- 코틀린의 데이터 클래스와 유사
주요 기능
- 생성자, 데이터 필드, 필드명을 딴 getter 메서드 자동 생성
- 불변성 보장
equals()
, hashCode()
, toString()
메서드 자동 생성
유의 사항
- final, public 으로 선언
- 각 필드는 private final 필드로 정의
- JPA entity 로 사용 불가
기존의 불변 데이터 객체
public 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;
}
}
record 클래스를 이용한 불변 객체
public record Person(String name, int age) {
}