반응형
레코드(record)란 "데이터 클래스"이며 순수하게 데이터를 보유하기 위한 특수한 종류의 클래스이다.
코틀린의 데이터 클래스와 비슷한 느낌이라고 보면 된다.
record 클래스를 정의할때, 그 모양은 정말 데이터의 유형만 딱 나타내는 듯한 느낌이다.
훨씬더 간결하고 가볍기 때문에 Entity 혹은 DTO 클래스를 생성할때 사용되면 굉장히 좋을 듯 하다.
예제 코드는 다음과 같다.
두개의 샘플 코드는 같은 동작을 하는 클래스와 레코드이다.
Class
public class TestClass{ private final String id; private final String name; public TestClass(String id, String name){ this.id = id; this.name = name; } public String getId(){ return id; } public String getName(){ return name; } |
이런 getter 를 갖고있는 class를 아래와 같이 간결하게 가능하다.
Record
public record TestRecord( String id, String name ){} |
레코드의 특성은 다음과 같다.
- record는 final 클래스라서 상속이 불가능
- 모든 필드는 private final로 정의 됨
- 모든 필드를 초기화 하는 RequiredAllArgument 생성자 생성 됨
- 각 필드의 getter 는 getId() 가 아니라 필드명 이름 그대로 getter() 가 된다 (name(), id())
jackson annotation 관련해서도 정의 가능하고
validation 로직을 넣을수도 있다.
반응형
'IT > Java' 카테고리의 다른 글
java jdbc oracle 사용법 (10) | 2022.12.24 |
---|---|
[Oracle] java.sql.SQLException: ORA-00911: 문자가 부적합합니다. (12) | 2022.12.23 |
식별자 명명 규칙 (15) | 2022.12.19 |
SimpleDateFormat 에 대해 (7) | 2022.12.16 |
이클립스 내에서 문자열 일괄 변경 (19) | 2022.12.14 |
댓글