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 |