새소식

Java/제대로 파는 자바

[제대로 파는 자바 (Java)-by 얄코] 레코드 (Java 16+)

  • -

해당 게시물은 [제대로 파는 자바 (Java) - by 얄코]를 수강한 내용을 바탕으로 작성하였습니다.

 

 

 

 

 

  • 자바 14에서 Preview로 추가, 16에서 정식 등록
  • 데이터의 묶음을 저장하기 위한, 단순한 형태의 클래스

 

 

 

 

▼ 클래스로 작성한 예시

package sec06.chap07.ex01;
// 기존처럼 클래스로 작성해야 했다면...
public class ChildClass {
private final String name;
private final int birthYear;
private final Gender gender;
public ChildClass(String name, int birthYear, Gender gender) {
this.name = name;
this.birthYear = birthYear;
this.gender = gender;
}
public String getName() { return name; }
public int getBirthYear() { return birthYear; }
public Gender getGender() { return gender; }
}

 

 

 

 

// ⭐️ 레코드로 작성
public record Child(
String name,
int birthYear,
Gender gender
) {}

 

 

 

 

 

 

 

  • 레코드는 final
    • 다른 클래스로 상속되거나 abstract 로 선언 불가
  • 레코드의 각 항목들(name,birthYear,gender)은 private, final
    • 각각 같은 이름의 getter가 기본으로 만들어짐
  • 인스턴스 필드를 가질 수 없음
    • 클래스 필드는 가능 ( 아래 예제에서 확인 )

 

 

 

 

 

 

 

 

 

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.