2010-06-25 2 views
7

У меня есть следующий код, и теперь у меня есть тип, но мне нужно иметь какой-то переключатель, чтобы узнать, является ли тип, например, String, а затем выполняет обработку для строк. Итак, как я могу проверить, является ли тип t типом String?Как я могу сравнивать типы в Java с отражением

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

ответ

10

Вы хотите сделать проверку имени или объектную проверку?

С Class реализует Type, вы можете пойти прямо и сделать Равные против String.class Например: если (t.equals (String.class))

Если, однако, вы хотите, чтобы выполнить проверку на основе по имени, затем сначала проверьте, является ли t экземпляром класса, , а затем передайте его классу, получите полное имя типа и сравните.

+1

Фактически 'Field.getType()' возвращает 'Class ', поэтому он безопасен для этого. – laura

+0

Huh ... Это интересно. Я должен был посмотреть на JavaDocs. Что он делает в случае примитивов? – Uri

+2

Примитивы, хотя и не классы, имеют связанный с ними объект класса. 'Класс i = int.class;' – ILMTitan

Смежные вопросы