Мне нужно вызвать методы setter класса с использованием отражения, а код выглядит следующим образом:
try {
Method method = myObj.getClass().getMethod("set" + fieldName, new Class[] { value.getClass() });
method.invoke(myObj, value);
} catch (Exception ex) {
ex.printStackTrace();
}
value
- это ArrayList
, а метод настройки:
public void setNames(List<String> names){
this.names = names;
}
A java.lang.NoSuchMethodException
вызывается при запуске этого кода, но когда тип параметра метода setter изменяется на ArrayList
из List
, он выполняет штраф. Есть ли способ сохранить параметр метода setter в супертипе и по-прежнему использовать отражение, не задавая вручную тип параметра при получении метода из класса?