Invocando o método setter usando a reflexão java
Eu preciso invocar os métodos setter de uma classe usando reflexão, e o código é como abaixo:
<code>try { Method method = myObj.getClass().getMethod("set" + fieldName, new Class[] { value.getClass() }); method.invoke(myObj, value); } catch (Exception ex) { ex.printStackTrace(); } </code>
ovalue
é umArrayList
e o método setter é como abaixo:
<code>public void setNames(List<String> names){ this.names = names; } </code>
A java.lang.NoSuchMethodException
é lançado ao executar este código, mas quando o tipo de parâmetro do método setter é alterado paraArrayList
deList
executa bem. Existe uma maneira de manter o parâmetro do método setter no tipo super e ainda usar reflexão sem fornecer manualmente o tipo do parâmetro ao obter o método da classe?