Có thư viện nào có thể thực hiện những việc sau không ?:Đặt trường đối tượng từ HashMap
Cho một đối tượng và một HashMap, nó liệt kê các khóa của Hashmap và tra cứu các bộ định vị cho các phím này trong Đối tượng và bộ các giá trị được liên kết. Một cái gì đó trông như rằng:
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;
}
Nhiệm vụ trông đơn giản ở cái nhìn đầu tiên nhưng có một số sắc thái mà tôi hy vọng ai đó đã đưa về chăm sóc. Như bạn đã biết, việc phát minh lại bánh xe (bánh xe tốt) là một cách tiếp cận tồi tệ.
Cảnh báo "chỉ đề cập đến các đối số setter của kiểu String, boolean, int, long, flat và double" là rất đáng chú ý, vì lý do đó tôi tin rằng câu trả lời dưới đây (nhưng sử dụng BeanUtils.copyProperty() chứ không phải BeanUtils.setProperty()) là giải pháp thay thế tốt hơn. – fragorl