세로형
Recent Posts
Recent Comments
Link
04-20 21:32
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

자바 instanceof 본문

java

자바 instanceof

이수진의 블로그 2017. 8. 16. 08:39

instanceof는 객체 타입을 확인하는 연산자이다.
이 연산자는 부모 변수가 참조하는 객체가 부모 객체인지, 자식 객체인지 확인 할 수 있다.

boolean result = 객체 instance of 타입

즉 좌항의 객체가 우항의 인스턴스 이면 즉, 우항의 타입으로 객체가 생성되었다면 true를 반환한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
class Parent2
{
    
}
 
class Child2 extends Parent2
{
    
}
 
class InstanceofExample
{
    public void method1(Parent2 parent)
    {
        if(parent instanceof Child2)
        {
            Child2 c = (Child2) parent;
            System.out.println("method1 - child로 변환 성공");
        }
        else
        {
            System.out.println("method1 - child로 변환 실패");
        }
    }
    
    public void method2(Parent2 parent)
    {
        Child2 c = (Child2) parent;
        System.out.println("method2-Child로 변환 성공");
    }
    
    public void start()
    {
        Parent2 pA = new Child2();
        method1(pA);
        method2(pA);
        
        Parent2 pB = new Parent2();
        method1(pB);
        method2(pB);
    }
}
 
 
 
Colored by Color Scripter

위 소스를 보면 변환이 가능하면 변환되었다고 출력이 되게 한다. pA는 Child클래스로 타입 변환이 되어 있기 때문에 올바르게 변환이 되지만 pB는 Child로 instatnceof가 먹히지 않는다. 

이 instanceof를 이용해서 객체 타입을 확인하여 로직을 짤 수 있다.


반응형
그리드형
Comments