gpt4 book ai didi

java- field.set(objec1,object2) 仅当 object1 是字符串时才有效

转载 作者:行者123 更新时间:2023-12-02 07:21:37 26 4
gpt4 key购买 nike

我是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() 方法返回一个字符串,因此您只能在字符串类型的字段上设置该值。对于其他字段类型,您必须将节点值从字符串转换为目标字段类型。您可以检查该字段以获取其类型并从那里获取它。

对于刚接触 java 的人来说,这是一项艰巨的工作。祝你好运!

关于java- field.set(objec1,object2) 仅当 object1 是字符串时才有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14140127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com