반응형
728x170
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를 이용해서 객체 타입을 확인하여 로직을 짤 수 있다.
반응형
그리드형
'java' 카테고리의 다른 글
자바 인터페이스 - 1 (0) | 2017.08.16 |
---|---|
자바 추상 클래스, 추상 메소드, 자동 타입 변환 (0) | 2017.08.16 |
자바 클래스 자동 타입 변환 및 다형성 (0) | 2017.08.16 |
자바 상속과 오버라이딩, super (0) | 2017.08.16 |
자바 get, set 메소드(getter, setter) (0) | 2017.08.14 |