我是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新手来说,这是艰巨的工作。祝好运!