불변(imutable) 데이터 클래스를 간단히 정의할 수 있도록 만든 새로운 참조 타입으로 아래와 같이 사용한다.
public record User(String name, int age) {}
record 타입으로 생성된 클래스는 다음 함수를 자동으로 생성한다.
장점 | 설명 |
---|---|
코드 간결성 | 생성자, getter, toStirng, equals등을 자동 생성 |
불변성 제공 | 필드는 자동으로 final이며 수정 불가 |
안정성 증가 | 상태 변경이 불가능하므로 쓰레드 안정성 증가 |
패턴 매칭과 시너지 | instanceof, switch 패턴 매칭과 조합에 유용 |
Java Recor 직렬화 지원 | Java 17 이후 Serialzable 구현에 유리 |