본문 바로가기
Backend/Java

JAVA : 레코드(Record)에 대해서

by 코딩쥐 2024. 10. 7.

Record는  JDK 16에서 도입된 클래스로, record로 정의된 객체의 필드 값은 한 번 설정되면 변경되지 않는다. 이를 통해 데이터의 일관성을 유지할 수 있다. 또한 record는 생성자, getter 메서드, toString메서드 등이 메서드들이 자동으로 생성되어 기존 클래스를 작성할 때보다 간결하게 객체를 생성할 수 있다. 

  • public record 클래스명(){}

Recod 사용하기

1. Record 작성하기

package com.example;

public record Person(String name, int age, boolean attendance) {
}

 

2. Record 사용하기

레코드 클래스의 인스턴스를 생성하면, 따로 getter 메서드를 작성하지 않아도 getter메서드가 자동으로 생성되어 사용이 가능하다. 

package com.example;

public class Example01{
    public static void main(String[] args) {
        // 레코드 클래스 인스턴스 생성
        Person person1 = new Person("아무개", 30, false);

        // 인스턴스에 getter 메서드 기본으로 생성
        System.out.println(person1.name()); // 아무개
        System.out.println(person1.age());  // 30
        System.out.println(person1.attendance()); // false

        // 인스턴스에 toString 메서드 기본으로 생성
        System.out.println(person1.toString()); // Person[name=아무개, age=30, attendance=false]
    }
}

 

Java의 레코드 타입은 불변 객체를 생성하기 위한 기능이기 때문에 레코드의 필드는 자동으로 final로 선언된다. 즉 레코드가 생성된 후에는 필드의 값을 변경할 수 없기 때문에 setter 메서드를 넣을 수 없다.