gpt4 book ai didi

java - 反射 IllegalArgumentException

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:13 25 4
gpt4 key购买 nike

我需要从一个类获取私有(private)字段并将它们设置到另一个类。

此代码非常适合测试整数字段(写入 100500 值):

//get objects, class firs...

for(int i =0; i<fields1.length; i++) {
Field field1 = fields1 [i];
Field field = fields [i];
field.setAccessible(true);
field.set(app, new Integer(100500));
}

尽管如此,当我切换到未定义类型时(字段属于不同类型:日期、整数、字符串...

例如,第一类有日期,第二类有日期,我需要从另一个复制一个值,但下一个字段在两个类中都是字符串)

for(int i =0; i<fields1.length; i++) {
Field field1 = fields1 [i];
Field field = fields [i];
field.setAccessible(true);
field.set(app, field1);
}

我收到一个 IllegalArgumentException,例如我真的无法从一个类中获取值并将其设置到另一个类中。

亲爱的社区,请给我一个提示 - 我做错了什么?

最佳答案

对我来说,看起来你交出了字段引用而不是字段值:

for(int i =0; i<fields1.length; i++) {
Field field1 = fields1 [i];
Field field = fields [i];
field.setAccessible(true);
field.set(app, field1.get(app1)); //or whatever object field1 is from
}

虽然我不会那样做,因为秩序是一个脆弱的东西......你可以使用 beanutils复制你的 beans,如果是,你想要实现什么

关于java - 反射 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14685105/

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