PHpullh
학습 라이브러리/Java/instanceof 패턴 매칭

JAVA · 기초 문법

instanceof 패턴 매칭

Java 16+의 instanceof 패턴 매칭으로 형변환 없이 바로 변수를 사용합니다.

기초 문법중급instanceof패턴매칭Java16형변환

핵심 설명

Java 16+의 instanceof 패턴 매칭으로 형변환 없이 바로 변수를 사용합니다.

Java code

public class InstanceofPattern {
    public static void main(String[] args) {
        Object obj = "Hello, Java 21!";

        // 기존 방식
        if (obj instanceof String) {
            String s = (String) obj;
            System.out.println(s.toUpperCase());
        }

        // 패턴 매칭 (Java 16+)
        if (obj instanceof String s) {
            System.out.println(s.length());
        }

        // 논리 연산자와 함께
        if (obj instanceof String s && s.length() > 5) {
            System.out.println("긴 문자열: " + s);
        }

        // 부정에서도 활용
        if (!(obj instanceof String s)) {
            System.out.println("문자열 아님");
            return;
        }
        // 여기서 s 사용 가능
        System.out.println(s.toLowerCase());
    }
}

학습 팁

패턴 변수의 스코프는 확정적으로 true인 범위에서만 유효합니다. &&와 함께 쓸 수 있지만 ||에서는 쓸 수 없습니다.

주의할 점

obj instanceof String s || s.isEmpty()는 컴파일 에러입니다. ||의 오른쪽에서는 패턴 변수가 확정되지 않습니다.

자주 묻는 질문

instanceof 패턴 매칭란 무엇인가요?

Java 16+의 instanceof 패턴 매칭으로 형변환 없이 바로 변수를 사용합니다.

instanceof 패턴 매칭 학습 시 주의할 점은 무엇인가요?

obj instanceof String s || s.isEmpty() 는 컴파일 에러입니다. || 의 오른쪽에서는 패턴 변수가 확정되지 않습니다.