1. Recode란?
Record는 자바 14에서 도입되었고, 16에서 정식으로 채택된 클래스이다. 데이터를 다루기 위한 데이터 클래스로 사용된다. 자동으로 생성자를 만들어주고, getter, equals, hashCode, toString을 자동으로 생성한다. 필드를 final로 생성해줘서 불변 데이터로 관리할 수 있다.
Record 클래스는 주로 데이터를 보관하고 전달하기 위한 목적으로 사용되며, 레코드 타입(Record Type)이라고도 한다.
2. 예시
public record ClassName(parameters) {
// 필드 정의
}
public record Person(String name, int age) {
}
public class RecordExample {
public static void main(String[] args) {
// 레코드 객체 생성
Person person1 = new Person("Alice", 30);
Person person2 = new Person("Bob", 25);
// 레코드 객체의 필드에 접근
System.out.println("Name: " + person1.name()); // "Alice" 출력
System.out.println("Age: " + person1.age()); // 30 출력
// 레코드 객체 비교
System.out.println("Are they equal? " + person1.equals(person2)); // false 출력
// 레코드 객체 출력
System.out.println(person1); // "Person[name=Alice, age=30]" 출력
}
}
3. 주요 특징
- 불변성(Immutable): Record 클래스의 인스턴스는 불변하며, 한 번 생성되면 내부 데이터를 수정할 수 없다. 이러한 불변성은 데이터의 안정성과 예측 가능한 동작을 제공한다.
- 자동 생성 메소드: Record 클래스는 자동으로 생성자 메소드, 접근자 메소드(getters), equals(), hashCode(), toString() 메소드를 생성한다. 이를 통해 객체를 생성하고 필드에 접근하는 데 편의성을 제공한다.
- Value 타입: Record 클래스는 값 타입(Value Type)의 개념을 강화하며, 객체의 내용이 동일하면 동등한 것으로 간주된다. 이는 객체 비교에 사용되는 equals()와 hashCode() 메소드에 반영된다.
- 데이터 보관용: Record 클래스는 데이터를 간결하게 보관하고 전달하기 위해 사용되며, 데이터 구조를 정의하는 데 유용하다.
- 명시적인 생성자: Record 클래스는 자동으로 생성자를 가지며, 필드 초기화를 위한 생성자를 명시적으로 정의할 필요가 없다. 생성자의 파라미터는 Record 클래스의 필드와 일치해야 한다.
- 출처
https://www.youtube.com/watch?v=pgiecZ2c6BQ
'개발 > Java & Kotlin' 카테고리의 다른 글
[Java] 오브젝트: 코드로 이해하는 객체지향 설계 (2) (151) | 2023.10.02 |
---|---|
[Java] 오브젝트: 코드로 이해하는 객체지향 설계 (1) (124) | 2023.09.22 |
[Spring] Redirect, Forward 차이 (55) | 2023.09.18 |
[Java] 자바 JDK 21 버전 특징 (30) | 2023.08.31 |
[Java] 테스트가 어려운 코드 (11) | 2023.08.23 |