간단히 설명하자면 "데이터 클래스"이며 순수하게 (불변)데이터를 보유하기 위한 특수한 종류의 클래스다. 이를 사용하면 데이터를 객체 간에 전달하는 작업을 간단하게 만들어준다.
String 값으로 name, Integer 값으로 age라는 변수를 갖고 있는 User라는 클래스 구현한다고 가정하자.
일반 클래스로 구현한 User 클래스
public class User {
private final String name;
private final Integer age;
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
}
record를 사용하여 구현한 User 클래스
public record User (String name, String address) {}
User.name(), User.age()로 사용)equals(), hashcode(), toString()을 자동으로 생성한다.때문에 불필요한 코드들을 쉽게 제거가 가능하다!