instanceof 패턴 매칭
패턴 매칭으로 타입 확인과 캐스트를 한 단계로 결합합니다.
코드 비교
✕ Java 8
if (obj instanceof String) {
String s = (String) obj;
System.out.println(s.length());
}
✓ Java 16+
if (obj instanceof String s) {
IO.println(s.length());
}
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
중복 캐스트 없음
타입 확인과 변수 바인딩이 단일 표현식에서 이루어집니다.
줄 수 감소
두 줄 대신 한 줄 — 캐스트 줄이 완전히 사라집니다.
범위 안전성
패턴 변수는 타입이 보장되는 범위에서만 존재합니다.
이전 방식
instanceof + 캐스트
모던 방식
패턴 변수
JDK 버전
16
난이도
초급
JDK 지원
instanceof 패턴 매칭
사용 가능
JDK 16 (2021년 3월) 이후 널리 사용 가능
동작 원리
instanceof 패턴 매칭은 타입 확인 후 중복 캐스트를 제거합니다. 변수는 패턴이 매칭되는 곳에서만 자동으로 범위가 지정되어 코드가 더 안전하고 짧아집니다.
관련 문서