C'è una biblioteca che può fare il seguente ?:Impostare campi oggetto da HashMap
Dato un oggetto e un HashMap, enumera le chiavi della HashMap e cerca il setter per queste chiavi nell'oggetto e imposta i valori associati. Qualcosa di simile alla ricerca:
public Object setData(Object object, HashMap<String, Object> fields) {
for (Entry<String, Object> entry : fields.entrySet()) {
Method m = object.getClass().getMethod("set" + entry.getKey(), entry.getValue().getClass());
if (m != null) {
m.invoke(object, entry.getValue());
}
}
return object;
}
Il compito sembra semplice al primo sguardo, ma ci sono alcune sfumature che spero che qualcuno ha già preso cura di. Come sapete, reinventare la ruota (la buona ruota) è un approccio sbagliato.
L'avvertenza "si occupa solo degli argomenti setter di tipo String, booleano, int, long, flat e double" è MOLTO degno di nota, per questo motivo credo che la risposta sottostante (ma usando BeanUtils.copyProperty() piuttosto che BeanUtils.setProperty()) è l'alternativa migliore. – fragorl