Record Class에 대하여

신준호·2024년 3월 5일
0
post-thumbnail

Record란?

  • 불변 객체를 쉽게 생성할 수 있도록 하는 유형의 클래스
  • JDK16에서 정식 스펙에 포함

Before

ChatMessage 클래스에 방번호, 보낸사람 아이디, 보내사람 이름, 내용이 있습니다. Record를 사용하기 전에는 다음과 같이 코드를 작성해야합니다.

@Getter
@Setter
@Builder
public class ChatMessage {
    private String roomId;
    private String senderId;
    private String senderName;
    private String message;

    public ChatMessage(String roomId, String senderId, String senderName, String message) {
        this.roomId = roomId;
        this.senderId = senderId;
        this.senderName = senderName;
        this.message = message;
    }

}
  • 모든 필드에 final 선언
  • 필드 값을 모두 포함한 생성자
  • 접근자 메소드(getter) -> @Getter로 대체
  • 클래스의 상속을 제한하려면 클래스 레벨에도 final 선언

After

ChatMessage 클래스를 record로 대체해보겠습니다.

public record ChatMessage(String name, String senderId, String senderName, String message) {
}

record를 사용하면 다음 내용들이 자동으로 생성됩니다.

  • 필드 캡슐화
  • 생성자 메서드
  • getters 메서드
  • equals 메서드
  • hashcode 메서드
  • toString 메서드
profile
개발 공부 일지

0개의 댓글