tôi đã tự hỏi liệu nó sẽ có thể có một cái gì đó như sau trong Java:phương pháp Java để gán giá trị lĩnh vực đối tượng với Reflection
public class MyClass {
private String name;
private Integer age;
private Date dateOfBirth;
// constructors, getters, setters
public void setField(String aFieldName, Object aValue) {
Field aField = getClass().getDeclaredField(aFieldName);
// use: aField.set(...) with proper type handling
}
}
Tôi thực sự bị mắc kẹt trong phương pháp setField và bất kỳ ý tưởng sẽ rất Hữu ích.
Cảm ơn!
EDIT: Lý do cho điều này là tôi muốn có một phương pháp trong lớp khác như sau
public static MyClass setAll(List<String> fieldNames, List<Object> fieldValues) {
MyClass anObject = new MyClass();
// iterate fieldNames and fieldValues and set for each fieldName
// the corresponding field value
return anObject;
}
Có, tôi đã thử điều này nhưng tôi muốn thêm một số loại kiểm tra kiểu và truyền thích hợp trong phương thức. Bất kỳ ý tưởng? – gpol
Bạn có thể làm loại kiểm tra nếu bạn muốn (nhưng nếu tất cả các bạn làm với một kiểm tra thất bại là để ném, sau đó đó là vô nghĩa, kể từ khi cơ chế phản ánh sẽ ném cho bạn). Không đúc sẽ phù hợp. –