Record 레코드
- JDK 14에서 만들어진 새로운 Java 자료형
- 클래스보다 간결하게 값을 저장할 목적의 객체를 생성하기 위한 자료형
- 필드값을 변경할 수 없는 객체를 생성하기 위한 목적으로 선언
- 레코드에는 final 필드만 작성 가능
- 레코드 선언시 소괄호 안에 필드를 작성하면 생성자 및 메소드가 자동 생성
- 필드명 동일한 이름으로 필드값을 반환하는 메소드 제공
Class와 Record의 차이
MemberOne
public class MemberOne {
private String id;
private String name;
private String email;
public MemberOne() {
}
public MemberOne(String id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "[아이디 =" + id + ", 이름 =" + name + ", 이메일 =" + email + "]";
}
}
MemberOneApp
public class MemberOneApp {
public static void main(String[] args) {
MemberOne member = new MemberOne("abc123", "홍길동", "abc@itwill.xyz");
System.out.println("아이디 = " + member.getId());
System.out.println("이름 = " + member.getName());
System.out.println("이메일 = " + member.getEmail());
}
}
MemberTwo(Record)
public record MemberTwo(String id, String name, String email) {
}
MemberTwoApp(Class)
public class MemberTwoApp {
public static void main(String[] args) {
MemberTwo member = new MemberTwo("abc123", "홍길동", "abc@itwill.xyz");
System.out.println("아이디 = " + member.id());
System.out.println("이름 = " + member.name());
System.out.println("이메일 = " + member.email());
}
}