기존에 항상 dto를 일반 클래스로 만들고 필드에 final 키워드를 붙여왔다. 하지만 프로젝트를 하던 도중 record 클래스에 대한 존재를 깨달았다.
Record란 자바에서 불변한 데이터를 저장하는 것에 사용되는 클래스이다.
아래 특징에서 알아보겠지만 dto를 생성할 때에 상당히 유용해보인다.
암묵적으로 어떤 클래스도 상속 받을 수 없다.
암묵적으로 class에 final 키워드가 붙어있으며 abstract가 포함될 수 없다.
record의 요소로 들어있는 파라미터들에는 모두 final 키워드가 붙어있다.
인스턴스 필드를 선언할 수 없기 때문에 record의 파라미터가 그 자체로 그 값이다.
컴팩트 생성자와 같은 파라미터를 가진 생성자를 함께 작성하면 컴파일 에러가 난다.
자동 생성
https://www.baeldung.com/java-record-keyword
https://openjdk.org/jeps/395