Java

레코드 선언

공부처음하는사람 2024. 7. 9. 22:11

 

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