본문 바로가기
Language/Java

JAVA 16 - instanceof 신기능(Pattern Matching for instanceof)

by 클레어몬트 2024. 8. 11.

자바 16부터는 instanceof를 사용하는 동시에 변수를 선언할 수 있다.

우선, 기존의 코드를 보면

 

public void call(Parent parent) {
        parent.parentMethod();
        if (parent instanceof Child) {
            System.out.println("Child 인스턴스가 맞습니다");
            Child child = (Child)parent;
            child.childMethod();
        }
    }

 

이렇게 인스턴스가 맞는 경우 직접 다운캐스팅을 해줘야 하지만, instanceof의 신기능을 활용하면

 

public void call(Parent parent) {
        parent.parentMethod();
        if (parent instanceof Child child) { // JAVA 16 - Pattern Matching for instanceof
            System.out.println("Child 인스턴스가 맞습니다");
            child.childMethod();
        }
    }

 

이렇게 instanceof를 사용하는 동시에 변수를 선언해 다운캐스팅 하는 코드를 생략할 수가 있다.

알아두면 유용하니 숙지하도록 하자!

 

 

 

 

 

 

 

참고 및 출처: 김영한의 실전 자바 - 기본편

https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EA%B8%B0%EB%B3%B8%ED%8E%B8