Czy istnieje biblioteki, które można wykonać następujące czynności ?:Zestaw pól obiektu z HashMap
Biorąc pod uwagę przedmiot i HashMap, to wylicza klucze HashMap i patrzy w górę ustawiające dla tych kluczy w obiekcie i zestawy powiązane wartości. Coś się tak:
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;
}
Zadanie wygląda prosta na pierwszy rzut oka, ale są pewne niuanse, które mam nadzieję, że ktoś już załatwione. Jak wiecie, wymyślanie koła (dobre koło) to złe podejście.
The caveat "dotyczy tylko argumentów ustawiających typu String, boolean, int, long, flat i double" jest BARDZO wart uwagi, z tego powodu uważam, że poniżej odpowiedź (ale przy użyciu BeanUtils.copyProperty() zamiast BeanUtils.setProperty()) jest lepszą alternatywą. – fragorl