객체 타입을 확인하는데 사용.
참조 변수가 피연산자로 변환이 가능한지 불가능한지 true false로 판별함.
참조변수 instanceof 타입(클래스명) 피연산자로
연산결과가 true를 얻으면 참조변수가 검사한 타입으로 형변환 가능.
예시
class A {
}
class B extends A{
}
public class Test {
public static void main(String[] args) {
A a = new B();
B b = new B();
if( b instanceof A){
System.out.println("변환 가능");
}else{
System.out.println("변환 불가능");
}
System.out.println("===============");
if( a instanceof B){
System.out.println("변환 가능");
}else{
System.out.println("변환 불가능");
}
System.out.println("===============");
A a1 = new A();
if( a1 instanceof A){
System.out.println("변환 가능");
}else{
System.out.println("변환 불가능");
}
System.out.println("===============");
if( a1 instanceof B){
System.out.println("변환 가능");
}else{
System.out.println("변환 불가능");
}
System.out.println("===============");
}
}
결과
변환가능
===============
변환가능
===============
변환가능
===============
변환불가능
===============
instanceof 연산자는 객체가 어떤 타입인지 조사할 때 사용하며, 주로 강제 타입 변환 전에 변환이 가능한지 조사할 때 사용