모던자바 - Record

TopOfTheHead·2025년 10월 21일

자바 ( JAVA )

목록 보기
17/23

Record :
JDK16에서 추가된 기능으로 재할당을 금지하는 불변객체를 쉽게 구축.
▶ 기존 final을 선언한 클래스와 유사하지만 더 간결하고 효율적으로 불변객체를 생성 가능

public으로 선언해야 다른 클래스에서 record로 생성한 객체를 사용이 가능

Record를 통해 DTO를 구현 시 불변객체를 통해 데이터 전달을 수행하여 DTO 객체불변성을 보장할 수 있다.
구현사례

。주로 POJO 역할의 불변객체 생성 시 사용하는 방식
record를 생성 시 private final field, 생성자, accessor, equals(), hashCode, toString() 을 자동으로 생성 및 설정하여 따로 클래스 내 정의하는 번거로움을 감소
불변객체이므로 재할당이 금지되어 setter는 없다.

Record 선언 시 다음처럼 클래스로서 간주되어 표시

  • 기존 불변객체 클래스 생성
public class Person {
    private final String name;
    private final int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
  	public int age() {
        return age;
    }
    public String name() {
        return name;
    }
  	public String toString(){ // ... }
  	public String hashCode(){ // ... }
  	public String equals(){ // ... }
}
  • Record로 생성한 class
    record Person(String name , int age){}
profile
공부기록 블로그

0개의 댓글