我是Java新手。我正在尝试从XML文件中的字段填充类。我制作了看起来像在工作的代码,但仅适用于字符串字段

编码:

private void setValue(String className,  Node n, Object thObject) {

    try {

         Class oClass = thObject.getClass();
        Field [] f =  thObject.getClass().getDeclaredFields();
        for (int i = 0 ; i < f.length; i++){
            if  (f[i].getName() == n.getNodeName()){
                    f[i].setAccessible(true);
                    try {
                        Object value = n.getNodeValue();
                        if (value != null) {
                            f[i].set(thObject, value);
                        }
                    } catch (IllegalAccessException e) {
                    }
                }
            }

    }


f[i].set仅在为字符串字段时有效

我尝试这样做:

f[i].setInt(thObject, Integer.parseInt(value.toString()))


但是没有用,现场说空了。

有人知道我做错了吗?

最佳答案

由于Node#getNodeValue()方法返回String,因此只能在String类型的字段上设置该值。对于其他字段类型,必须将节点值从字符串转换为目标字段类型是什么。您可以检查字段以获取其类型并从那里获取它。

对于Java新手来说,这是艰巨的工作。祝好运!

07-27 14:00