Java

JAVA Record

얘진 2022. 12. 19. 10:47

Record는 Class가 데이터 클래스임을 나타내고

자바 17버전 이상부터 사용할 수 있음 ! 

 

데이터를 묶어놓으려고 클래스를 만들 때 (예 - DTO)

 

 

public class ChatMessage{
    private final int id;
    private final String name;

    public ChatMessage(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

 

원래의 긴 코드(멤버변수 + 생성자 + Getter)를 Lombok을 이용해서 아래의 코드 처럼 간단하게 만들어서 사용했다.

Lombok은 자바 언어 자체에 들어있지 않는 라이브러리라서 추가를 해야한다.

 

import lombok.AllArgsConstructor;
import lombok.Getter;

@AllArgsConstructor
@Getter
public class ChatMessage {
    private final int id;
    private final String name;
}

 

자바 17버전 이상부터는 인텔리제이에서 Class can be a record 라며 

record로 Convert 할 것을 띄워줌

public record ChatMessage(int id, String name) {
}

record 를 사용하면 코드를 더 간단하게 줄일 수 있다 (자동으로 생성자와 멤버변수, Getter를 만들어 준다 )

 

Lobok 과는 달리 Java 언어 자체에서 record를 지원하기 때문에 라이브러리를 추가하지 않아도 되고 속도도 아~~주 조금 빠르다