당시 여러 오른쪽맞춤 답변을 내놓은 수축됐는데 아직 더 많은 방법: 단순히 클레스트리사시냐블레프롬 () '와' 캐스트 (던질 수 있는 'a' 클라스카스티스세페시옹) 시도중입니다 객체에는.
요약 가능한 방법
39 의 요약하십시오 let& 가능한 방법으로 개체의 경우 '목표' 테스트하려면 인스턴스입니다 유형 'C':
// Method #1
if (obj instanceof C)
;
// Method #2
if (C.class.isInstance(obj))
;
// Method #3
if (C.class.isAssignableFrom(obj.getClass()))
;
// Method #4
try {
C c = (C) obj;
// No exception: obj is of type C or IT MIGHT BE NULL!
} catch (ClassCastException e) {
}
// Method #5
try {
C c = C.class.cast(obj);
// No exception: obj is of type C or IT MIGHT BE NULL!
} catch (ClassCastException e) {
}
'Null' 취급료 차이를
'Null' 취급료 표시되어도 차이가 있습니다.
처음 두 가지 방법 '목표' 가 'false' 로 표현식에서는 평가하십시오 경우 'null' ('null' 인스턴스에서는 아무것도 아니다).
The 3rd 메서드로부터 누얼포인터렉세페시옹 '분명히' a '던질 수 있을 것 "이라고 말했다.
4, 5 차 메서드을 반면 다른 유형으로 'null' 'null' 캐스팅 때문에 받아들일 수 있습니다!
>. 기억. 하지만 'null' 모든 유형의 인스턴스를 아닌 다른 유형으로 캐스팅 될 수 있습니다.
노트
'클라스이제나미 _" 수행하는 데 사용할 수 없습니다 ()', 'C' 유형 테스트 베케이스 is-instance-of" _을 객체인지 경우, 하위 것은 있을 수 있지만 그것을 완전히 다른 이름 및 패키지 (그리하매 클래스 이름은 확실히 일치하지 않습니다.) 이지만 문자 그대로 'C'.
동일한 상속 이유 ' ()' 가 아닌 클레스트리사시냐블레프롬 symmetric:
' (c 클래스)' '거짓' 돌아갈 것이라고 스리자시냐블레프롬 오브j.제클레스 () '의 하위 클래스인 경우 목표' 유형 'C'.
Object instance = new SomeClass();
instance.getClass().getName(); //will return the name (as String) (== "SomeClass")
instance.getClass(); //will return the SomeClass' Class object
하스. 하지만 내가 생각하는 대부분의 시간을 사용할 수 없기 때문에 제어 흐름이 또는 비슷한 것이 좋습니다.
또한 [ui_policytable_java_spe_policy '스이신스턴스'] [1] 에서 '클래스' " 메서드로부터 "; 클래스. s 클래스 () ',' 마이바나나이제클레스 object& 발생할 경우 # 39 를 통해 확인할 수 있습니다 '마리애플 경우' 같은 클래스 '를 통해' 로 마이바나나 객체에는 인스턴스입니다
[오브ject.제클레스 ()] [1] 사용합니다. 런타임용으로 개발하십시오 반환할 객체의 타입은.
[1]: http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html # getClass% 28%29
당시 여러 오른쪽맞춤 답변을 내놓은 수축됐는데 아직 더 많은 방법: 단순히 클레스트리사시냐블레프롬 () '와' 캐스트 (던질 수 있는 'a' 클라스카스티스세페시옹) 시도중입니다 객체에는.
요약 가능한 방법
39 의 요약하십시오 let& 가능한 방법으로 개체의 경우 '목표' 테스트하려면 인스턴스입니다 유형 'C':
'Null' 취급료 차이를
'Null' 취급료 표시되어도 차이가 있습니다.
>. 기억. 하지만 'null' 모든 유형의 인스턴스를 아닌 다른 유형으로 캐스팅 될 수 있습니다.
노트
사용할 수 있습니다.
하스. 하지만 내가 생각하는 대부분의 시간을 사용할 수 없기 때문에 제어 흐름이 또는 비슷한 것이 좋습니다.
모든 방법을 사용할 경우 코드 기반으로 하는 나쁜 냄새를 제안됩니다 고려되는지 OO 의 디자인.
좋은 설계는 합니다 사용할 경우 직접 찾을 수 없는 ' ()' 또는 '하는 제클레스 instanceof'.
뭔가 한 것이 아니라, 모든 것을 염두에 두어야 하는 방법, 디자인 현명 할 것이다.
이 경우 반사 수 있습니다.
예 -
,, 금지되었는지 < pre> < code> void (HttpServletRequest request, 스테파서블레트레스폰지 응답) 중 ioexception 이 세르베르테스세페시옹 던지는 도제, {
} < /code> < /pre>;;;
이 경우 얻을 수 있는 '이름' 인터페이스입니다 레프랑스 HttpServletRequest 전달하십시오 객체에는 클래스 변수.
또한 [ui_policytable_java_spe_policy '스이신스턴스'] [1] 에서 '클래스' " 메서드로부터 "; 클래스. s 클래스 () ',' 마이바나나이제클레스 object& 발생할 경우 # 39 를 통해 확인할 수 있습니다 '마리애플 경우' 같은 클래스 '를 통해' 로 마이바나나 객체에는 인스턴스입니다
[1]: http://java.sun.com/javase/6/docs/api/java/lang/Class.html # 이신스턴스 (자바드랑드로비치)
확인을 이신스턴스 부족할 것 ' ()' 에서 궁금해할까봐 실행하십시오 하게하면서요. 사용:
"' if (섬롭ject.제클레스 그레퀄스 () (c 클래스) { 뭔가 // } "'