在list中的po对象转换成vo转换的问题 你这些代码,po和vo其实是没有区别的。相反我觉得vo在这里就是多余的,直接返回polist就完事了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在现有的业务系统中,vo中的属性<=po的属性,之所以不直接使用polist,是因为在控制层需要将list对象转化成json串传至前端(类似rest风格),而部分数据库列是不能生成在json串中,并且vo对象可以直接提供给第三方,po对象时不会给的 po和vo其实是没有区别的,本质上没什么,概念上可以有区分,但实际使用中,都没有什么 兄弟,你再VO装去转呗,直接写在实体类中,进行转换就ok了,1、在VO对象得到PO, 然后一个个set进去。2、再在VO中 写个如: /** * 取得所有对应的bo列表 * */ public List getAllPO() { List boList = new ArrayList(); boList.add(getBO()); // 这里getBO就是你先前set的对象。 return boList; } 楼主用的是spring吗?如果是spring的话可以采用AOP解决,可以将你的业务方法的返回值改为object,然后将需要转换的业务方法定义为切入点,使用spring的环绕增强 ,切入点你可以在spring的配置文件中定义//通过MethodInterfceptor实现环绕增强,关键代码如下public Object invoke(MethodInvocation invocation) throws Throwable{ try{ List<DeptVO> voList=new ArrayList<DeptVO>(); Object po=invocation.proceed(); //调用目标方法 BeanUtils.copyProperties(vo, po); }}大概思路就这样,楼主可以测试下 上面少写一句try{ List<DeptVO> voList=new ArrayList<DeptVO>(); Object po=invocation.proceed(); //调用目标方法 BeanUtils.copyProperties(vo, po); } return voList;//将你转换的后的对象返回出去 感谢您的帮助,有个问题是,如何将一个List<po>集合对象的复制给List<vo>集合对象,BeanUtils好像不支持 如果你每个业务层都是返回List<DeptVO>类型对象的话,那就遍历复制 如果你每个业务层都是返回List<DeptVO>类型对象的话,那就遍历复制自己写了个公共方法,勉强能用,分享下public static List copyList (List <? extends Object> poList , Class voClass){ List voList=new ArrayList(); Object voObj =null; for(Object poObj:poList){ try { voObj = voClass.newInstance(); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } BeanUtils.copyProperties(poObj, voObj); voList.add(voObj); } System.out.println("1111"+voList.size()); return voList; }调用 List<DeptVO> voList=Util.copyList(poList, DeptVO.class); 如果你每个业务层都是返回List<DeptVO>类型对象的话,那就遍历复制这个前面好像讲过的,论坛里已经有这个问题的答案了 求思路·······大神吗 赏赐点时间看眼 Object类型数组能向下类型转换么? 求高手相助 非法表达的错误 如何将图片缩小 求教:ArrayList、Array、Collection、Iterator、Vector的联系与区别? 2个问题:Applet引用其他包(.jar);Applet中运行页面脚本(JavaScript) 绘图产生的莫名其妙的问题(急!在线等候!!!!!!!) 关于system property 麻烦告知小弟那有网络编程的例子,50分相送 求高手指点 Java 获一天从00:00:00到23:59:59时间段的所有时间,每隔五分钟取一次
在现有的业务系统中,vo中的属性<=po的属性,之所以不直接使用polist,是因为在控制层需要将list对象转化成json串传至前端(类似rest风格),而部分数据库列是不能生成在json串中,并且vo对象可以直接提供给第三方,po对象时不会给的
* 取得所有对应的bo列表
*
*/
public List getAllPO() {
List boList = new ArrayList(); boList.add(getBO()); // 这里getBO就是你先前set的对象。 return boList;
}
public Object invoke(MethodInvocation invocation) throws Throwable{
try{
List<DeptVO> voList=new ArrayList<DeptVO>();
Object po=invocation.proceed(); //调用目标方法
BeanUtils.copyProperties(vo, po);
}
}大概思路就这样,楼主可以测试下
List<DeptVO> voList=new ArrayList<DeptVO>();
Object po=invocation.proceed(); //调用目标方法
BeanUtils.copyProperties(vo, po);
}
return voList;//将你转换的后的对象返回出去
感谢您的帮助,
有个问题是,如何将一个List<po>集合对象的复制给List<vo>集合对象,BeanUtils好像不支持
List voList=new ArrayList();
Object voObj =null;
for(Object poObj:poList){
try {
voObj = voClass.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
BeanUtils.copyProperties(poObj, voObj);
voList.add(voObj);
}
System.out.println("1111"+voList.size());
return voList;
}调用
List<DeptVO> voList=Util.copyList(poList, DeptVO.class);