JAVA - Record 클래스

조숙희·2025년 1월 30일
0

웹 프로젝트

목록 보기
5/8

Record란?

Record는 enum과 같은 특별한 형태의 class
extends를 지원하지 않음 (자동으로 final로 상속 불가능)
Record == class + (생성자, getter, hashCode(), equals(), toString()) + custom

record는 불변 객체로 DTO나 VO같은 단순한 데이터 구조로 주로 사용됨

 @Builder
public record Tokens(String accessToken, String refreshToken) { }

위 record를 class로 변환하면 아래와 같음
(단, 불변이라는 의미에서는 벗어남)


@Getter
@ToString
public class Tokens {
    private final String accessToken;
    private final String refreshToken;

    @Builder
    public Tokens(String accessToken, String refreshToken) {
        this.accessToken = accessToken;
        this.refreshToken = refreshToken;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Tokens tokens = (Tokens) o;
        return Objects.equals(accessToken, tokens.accessToken) &&
               Objects.equals(refreshToken, tokens.refreshToken);
    }

    @Override
    public int hashCode() {
        return Objects.hash(accessToken, refreshToken);
    }
}

0개의 댓글