2010-06-25 2 views
7

다음 코드를 가지고 있지만 이제는 유형이 있습니다. 그러나 유형이 예를 들어 문자열인지 그리고 문자열에 대한 처리인지 알아야 할 일종의 스위치가 있어야합니다. 그렇다면 Type t가 String 유형인지 어떻게 확인할 수 있습니까?리플렉션을 사용하여 Java에서 유형을 비교하는 방법

Type t = bean.getClass().getDeclaredField(fieldName).getType(); 

답변

10

이름 확인 또는 개체 기반 검사를 수행 하시겠습니까? ClassType 구현하기

, 당신은 실제로 직접 가서 예를 들어 String.class 에 대해 같음을 수행 할 수 있습니다 (t.equals (String.class))

하는 경우는, 그러나, 당신은 기초 검사를 수행하려는 경우 on 이름을 입력 한 다음 t가 Class의 인스턴스 인 경우 을 먼저 확인한 다음 Class로 캐스팅하고 전체 형식 이름을 가져온 다음 비교합니다.

+1

실제로'Field.getType()'은'Class '을 반환하므로이 방법을 사용하는 것이 안전합니다. – laura

+0

어 ... 재미 있습니다. JavaDocs를 살펴 보았어야했다. 프리미티브의 원인은 무엇입니까? – Uri

+2

Primitives에는 실제로는 클래스는 아니지만 Class 객체가 있습니다. 'Class i = int.class;' – ILMTitan

관련 문제