자바 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를 사용하는 동시에 변수를 선언해 다운캐스팅 하는 코드를 생략할 수가 있다.
알아두면 유용하니 숙지하도록 하자!
참고 및 출처: 김영한의 실전 자바 - 기본편
'Language > Java' 카테고리의 다른 글
[Java API] Object 클래스 주요 메서드: toString(), equals(), getClass(), hashCode(), notify(), notifyAll(), wait() (1) | 2024.08.20 |
---|---|
[Java API] java.lang 패키지 주요 클래스와 인터페이스 정리 (0) | 2024.08.20 |
[Java] 오버라이딩 조건 5가지 (0) | 2024.08.09 |
[Java] 상속과 메모리 구조 (0) | 2024.08.09 |
[Java] 패키지 규칙 및 관례 (0) | 2024.08.06 |