代码背景,我有一个抽象类humanbeing,还一个具体类man继承于它,在类family中,有一个humanbeing[] persons实例变量表示所有的家庭成员,而现在我要通过反射为这个实例变量赋一个man[]数组值,但是在调用Field.set(Object,Object)方法时发生了参数异常,代码情况如下:
[code]
String fldName=child.getName(); //字段名称
Object value=this.tranObject(value, child); //获得要赋的值,这里跟断点value确定已经获得了man[]数组
Field f=this.objRef.getField(fldName, object.getClass()); //获得字段,已经确定获得了persons字段,类型为humanbeing[]
f.setAccessible(true);
f.set(object, value); //往类型为humanbeing[]的persons字段中赋man[]类型的值,结果发生参数异常错误
[/code]不知道问题出在哪里,请老鸟提点,谢谢了
[code]
String fldName=child.getName(); //字段名称
Object value=this.tranObject(value, child); //获得要赋的值,这里跟断点value确定已经获得了man[]数组
Field f=this.objRef.getField(fldName, object.getClass()); //获得字段,已经确定获得了persons字段,类型为humanbeing[]
f.setAccessible(true);
f.set(object, value); //往类型为humanbeing[]的persons字段中赋man[]类型的值,结果发生参数异常错误
[/code]不知道问题出在哪里,请老鸟提点,谢谢了
String fldName=child.getName(); //字段名
value=this.tranObject(value, child); //要赋的值,已经跟过断点,确定能够获得一个man[]对象
Field f=this.objRef.getField(fldName, object.getClass()); //要赋值的字段,已经确定获得persons
f.setAccessible(true);
f.set(object, value); //向humanbeing[]类型的persons实例变量中赋入man[]类型的值,
就在这步发生了参数异常的错误不知道问题出在哪里,请老鸟提点,谢谢了
* <p>
* Title:
* </p>
*
* <p>
* Description:
* </p>
*
* <p>
* Copyright: 转载请注明出处http://blog.csdn.net/sunyujia/
* </p>
*
* @author 孙钰佳
* @main [email protected]
* @date Oct 1, 2008 10:25:47 PM
*/
public class RelTest {
Humanbeing[] persons; /**
* Description:
*
* @param args
* @throws NoSuchFieldException
* @throws SecurityException
* @mail [email protected]
* @since:Oct 1, 2008 10:25:47 PM
*/
public static void main(String[] args) throws Exception {
RelTest test = new RelTest();
Field field = RelTest.class.getDeclaredField("persons");
field.setAccessible(true);
Man[] mans = new Man[] { new Man(), new Man() };
field.set(test, mans);
System.out.println(test.persons.length); }}abstract class Humanbeing {
}class Man extends Humanbeing {
}