写了一个反射的方法,传进来一个对象,这个对象被封装进一个List,例如:
pojo是传进来的对象
List objs = new ArrayList();
for(int i = 0; i < 2; i++){
//操作,要改变pojo哈
objs.add(pojo);
}
这样一来,因为是传址调用,List的三个对象都被改变成一样的了,有没有办法不一样?
pojo是传进来的对象
List objs = new ArrayList();
for(int i = 0; i < 2; i++){
//操作,要改变pojo哈
objs.add(pojo);
}
这样一来,因为是传址调用,List的三个对象都被改变成一样的了,有没有办法不一样?
你的pojo的类有没有定义clone方法嘛,拷贝一个不就对了。
Pojo pojo=new Pojo();
List objs = new ArrayList();
for(int i = 0; i < 2; i++){
//操作,要改变pojo哈
objs.add(pojo);
} 这样你传进的类是一样的,这样的话List中的元素一定是一样的啊。我想应该定义一个函数。
List objs = new ArrayList();
for(int i=0;i<2;i++){
void test(Pojo pojo){
objs.add(pojo);
}
}
这样就可以传进不同的内容了
ori=emplo[name=chenpeng,salary=40000.0,hireDay=Mon May 05 00:00:00 CST 2008]
copy=emplo[name=chenpeng,salary=44000.0,hireDay=Sat Jan 01 00:00:00 CST 2000]
顺便说的是,你传进来的是一个pojo对象,你在方法内部循环执行操作,即使用反射设置其属性值,
Class c = pojo.getClass();//之后,c是同一个啊,你想怎么处理啊?