2008-10-26 7 views
6

많은 언어가 객체로 구현 (부모 서브 클래스 포함) 특정 유형의 있는지 확인하는 기능을 가지고 '있다'와 같이 사용 :Java에서 'is'를 수행하는 가장 쉬운 방법은 무엇입니까?

if(obj is MyType) 

또는 약간 지루하게 당신이 할 수있는 기타의 언어는 'as'키워드를 사용하여 소프트 타입 변환을 수행하고 결과가 null인지 확인합니다.

저는 수년 동안 Java를 사용하지 않았지만 속도를 높이기 위해 노력하고 있습니다.하지만 Java는 Reflection API를 깊이 파고 들지 않고 쉽게이 작업을 수행 할 수있는 방법이 있습니까?

미리 답변 해 주셔서 감사합니다. 나는 여기와 다른 곳 모두를 수색했으나 관련된 키워드는 매우 일반적이어서 이것이 간단한 대답을 가지고 있음에도 불구하고 인터넷 검색은 어렵다.

답변

16
if (objectReference instanceof type){ 
    //Your code goes here 
} 

자세한 정보 here.

+0

네 아, 정확히 무엇을의 방법을 사용하는 것입니다 나는 찾고 있었다. 감사. –

1

obj instanceof TargetTypeTargetTypeobj을 포함하는 유형 계층 구조 인 경우 true를 반환합니다.

당신은 문자 클래스와 instanceof을 사용할 수 있습니다

7

Sun's tutorial를 참조하십시오 즉 :

Class type = String.class; 

if (myObj instanceof String) // will compile 

if (myObj instanceof type) //will not compile 

대안은 Class.isInstance

if (type.isInstance(myObj)) // will compile 
관련 문제