我有一个任务,其中对象属性需要从通过JSON web服务接收的数据填充。属性名被映射到JSON键。我使用以下代码试图填充对象,但应用程序在遇到这一行时崩溃:
while(looper.hasNext()){
String key = looper.next();
String val = json.get(key).toString();
user.getClass().getDeclaredField(key).set(user, val); // crash
}
对象名为user。我已经验证了键变量是否与用户对象中的属性匹配。对如何解决这个问题有什么想法吗?谢谢!
你应该设置你的字段可访问
Field field = user.getClass().getDeclaredField(key);
if (field != null) {
field.setAccessible(true);
field.set(user, val);
}