dev.Log
Record 본문
* Record란?
레코드(record)란 "데이터 클래스"이며 순수하게 데이터를 보유하기 위한 특수한 종류의 클래스이다. 코틀린의 데이터 클래스와 비슷한 느낌이라고 보면 된다. 밑에서 코드를 보겠지만, record 클래스를 정의할때, 그 모양은 정말 데이터의 유형만 딱 나타내는 듯한 느낌이다. 훨씬더 간결하고 가볍기 때문에 Entity 혹은 DTO 클래스를 생성할때 사용되면 굉장히 좋을 듯하다.
출처 : 코딩스타트
Q. immutable한 클래스 또는 DataObject를 만드려면 어떻게 해야할까?
우선 방법으로는
1. final 키워드 사용하기
2. setter 없애기
3. hashcode, equals 잘 정의하기
public class CodeReview {
private final String reviewer;
private final String review;
public CodeReview(String reviewer, String review) {
this.reviewer = reviewer;
this.review = review;
}
public String getReviewer() {
return reviewer;
}
public Integer getReview() {
return review;
}
}
=> 코드가 길어지게 되는데 , 자바 14버전부터 지원하는 Record로 간단히 작성할 수 있게되었다!
/*
* 컴파일러는 헤더를 통해 내부 필드를 추론한다.
* 생성자를 작성하지 않아도 되고 toString, equals, hashCode 메소드에 대한 구현을 자동으로 생성한다.
*/
public record codeReview(String reviewer, String review) {
}
쏘심플!!
'BACKEND.*' 카테고리의 다른 글
JSP 프리컴파일 옵션 (1) | 2023.03.06 |
---|---|
ResourceBundle (0) | 2023.03.05 |
리팩토링1- 함수 선언 변경하기 (0) | 2022.11.06 |
테스트코드 (1) | 2022.10.28 |
ElasticSearch 등록&수정 (0) | 2022.10.20 |
Comments