레코드 패턴 (구조 분해)
패턴에서 레코드를 직접 구조 분해합니다 — 한 단계로 필드를 추출합니다.
코드 비교
✕ Java 8
if (obj instanceof Point) {
Point p = (Point) obj;
int x = p.getX();
int y = p.getY();
System.out.println(x + y);
}
✓ Java 21+
if (obj instanceof Point(int x, int y)) {
IO.println(x + y);
}
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
직접 추출
접근자를 수동으로 호출하지 않고 레코드 컴포넌트에 접근합니다.
중첩 가능
패턴은 중첩될 수 있습니다 — 단일 표현식으로 내부 레코드를 매칭합니다.
간결한 코드
5줄이 2줄이 됩니다 — 의식은 줄고 명확성은 동일합니다.
이전 방식
수동 접근
모던 방식
구조 분해
JDK 버전
21
난이도
중급
JDK 지원
레코드 패턴 (구조 분해)
사용 가능
JDK 21 LTS (2023년 9월) 이후 널리 사용 가능
동작 원리
레코드 패턴은 instanceof와 switch에서 레코드 컴포넌트를 직접 분해할 수 있게 합니다. 중간 변수 없이 심층 매칭을 가능하게 하는 중첩 패턴도 지원됩니다.
관련 문서