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



我有一个任务,其中对象属性需要从通过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);
}

相关内容

  • 没有找到相关文章

最新更新