Подтвердить что ты не робот

Отражение Java: получить класс поля

У меня есть метод, который требует что-то вроде Double.class как один из его входов;

например.

someOutput = SomeObj.someMethod("parameter",Double.class);

У меня есть еще один класс, в котором есть множество полей разных типов данных, которые я хотел бы подавать в качестве входных данных для этого метода вместо явной записи Double.class из Integer.class и т.д. и т.д.

Я знаю, что это связано с отражением Java, но я не совсем уверен, как делать то, что я хочу. Я пытаюсь что-то вроде этого, но он не работает:

for(Field field : Class.forName(MyClassWithLotsOfFields.class.getCanonicalName()).getFields()){ 
   someOutput = SomeObj.someMethod("parameter",field.getClass());
  //Do more stuff here...
}   

но field.getClass() не дает мне действительный класс поля из MyClassWithLotsOfFields, но вместо этого java.lang.reflect.Field

любые идеи о том, как делать то, что я хочу?

4b9b3361

Ответ 1

Вам нужно Field#getType().

Возвращает объект Class, который идентифицирует объявленный тип для поля представленный этим объектом Field.

getClass() - метод, унаследованный от Object, который возвращает тип самого объекта.