关于放射的数组类型Value

CHZiroy 2012-04-18 01:40:09
class boy{
}

class temp{
boy[] a;
int b;
}
类temp的反射,,,它一个对象的引用ObjectReference or 传到函数build中去,想在那里根据它把这个对象还原出来(新建一个一模一样的)

,,,,,,,
,,,,,,,
private void build(temp G,ObjectReference or){

Field v_a = or.referenceType().fieldByName("a");
Field v_b = or.referenceType().fieldByName("b"); //还原Int型比较容易我可以解决,主要是数组类型,总是有问题
Object[] j1 = null;
Value vex = or.getValue(v_a);
ArrayReference ar = (ArrayReference)vex;
List<Value> L1 =ar.getValues();
j1 = L1.toArray();
for(int i = 0; i < j1.length; i++)
G.a[i] = (boy)j1[i]; //此处意图将Object类转化为temp类
}

编译无错,但是,在运行出错,显示说


java.lang.ClassCastException: com.sun.tools.jdi.ObjectReferenceImpl cannot be cast to com.blue.jsw.boy
出错行就是上面又注释的那最后一行,,为什么说(boy)j1[i] 是ObjectReferenceImpl类型,这是什么类型
...全文
39 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧