레코드 선언

2024. 7. 9. 22:11·Java

 

DTO를 작성할 때 반복적으로 사용되는 코드를 줄이기 위해 java14부터 레코드(record)가 도입되었다.

 

package ch12.sec03.ex04;

public record Member(String id, String name, int age) {

}

 

class 대신에 record 키워드를 사용해 사용할 수 있다.

 

레코드 소스를 컴파일하면

- 변수타입과 이름을 이용해서 private final 필드가 자동으로 생성

- Getter 메소드가 자동으로 추가

- hashCode(), equals(), toString() 메소드를 오버라이딩한 코드 자동 추가

 

package ch12.sec03.ex04;

public class RecordEx {
    public static void main(String[] args) {

        Member m = new Member("winter", "눈송이", 25);
        System.out.println(m.id());
        System.out.println(m.name());
        System.out.println(m.age());  // getter 메소드 호출됨
        System.out.println(m.toString());
        System.out.println();

        Member m1 = new Member("winter", "눈송이", 25);
        Member m2 = new Member("winter", "눈송이", 25);
        System.out.println("m1.hashCode(): " + m1.hashCode());
        System.out.println("m2.hashCode(): " + m2.hashCode());
        System.out.println("m1.equals(m2): " + m1.equals(m2));
    }
}

실행 결과

 

 

 

'Java' 카테고리의 다른 글

래퍼 (wrapper) 클래스  (0) 2024.07.10
롬복 (Lombok)  (0) 2024.07.09
객체 문자정보 - toString()  (0) 2024.07.09
Object 클래스 / HashCode  (0) 2024.07.09
예외  (1) 2024.07.09
'Java' 카테고리의 다른 글
  • 래퍼 (wrapper) 클래스
  • 롬복 (Lombok)
  • 객체 문자정보 - toString()
  • Object 클래스 / HashCode
공부처음하는사람
공부처음하는사람
  • 공부처음하는사람
    lazzzykim
    공부처음하는사람
  • 전체
    오늘
    어제
    • 분류 전체보기 (129)
      • Kotlin (31)
      • Java (55)
      • Spring (20)
      • Algorithm (3)
      • TroubleShooting (1)
      • 내일배움캠프 프로젝트 (14)
      • Setting (2)
      • ... (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 인기 글

  • 태그

    김영한
    내일배움캠프
    Di
    김영한의 실전자바
    spring
    캡슐화
    중첩클래스
    @Component
    빈 생명주기
    다형성
    kotlin
    java
    제네릭
    OCP
    배열
    생성자 주입
    언체크예외
    김영한의 실전 자바
    싱글톤
    래퍼클래스
  • hELLO· Designed By정상우.v4.10.3
공부처음하는사람
레코드 선언
상단으로

티스토리툴바