У меня есть следующие коды.
public <T> List<Object> types(Class<T> clazz) {
Field[] fields = clazz.getDeclaredFields();
List<Object> types = Arrays.stream(fields)
.map(Field::getType)
.collect(Collectors.toList());
return types;
}
Я борюсь за то, чтобы потом передать тип поля как объект класса.Я буду использовать их в отражении (clazz
здесь класс Contact
):
for (Object type : name(clazz)) {
Method method = obj.getClass().getDeclaredMethod("myMethod", type.getClass());
}
Предполагая, что type
- это String
, если я распечатаю его как: System.out.println(type);
вывод: class java.lang.String
, но если я распечатал его как: System.out.println(type.getClass();
вывод: class java.lang.Class
.Поэтому, если я передаю это как type.getClass()
, рефлексия жалуется:
java.lang.NoSuchMethodException: Contact.myMethod(java.lang.Class)
Пожалуйста, помогите.Спасибо.