使用反射动态设置属性时出现问题

时间:2013-05-13 20:46:58

标签: java android reflection

我有一项任务,需要从通过JSON Web服务接收的数据中填充对象属性。属性名称映射到JSON键。我正在使用以下代码尝试填充对象,但应用程序在遇到此行时崩溃:

        while(looper.hasNext()){
            String key = looper.next();
            String val = json.get(key).toString();
            user.getClass().getDeclaredField(key).set(user, val); // crash
        }

该对象称为用户。我已经验证了密钥变量与用户对象中的属性匹配。有想法该怎么解决这个吗?谢谢!

1 个答案:

答案 0 :(得分:2)

你应该设置你的字段

Field field = user.getClass().getDeclaredField(key);
if (field != null) {
 field.setAccessible(true);
 field.set(user, val);
}