反射 vo与po的转换

public class ApprBeanUtil {

public static Object poToVo(Object po, Object vo) {
Class poCl = po.getClass();
Class voCl = vo.getClass();
Method voMethods[] = voCl.getMethods();
if (voMethods.length == 0) {
return vo;
}
for (int i = 0; i < voMethods.length; i++) {
Method voMethod = voMethods[i];
String voMethodName = voMethod.getName();
if (!voMethodName.startsWith("set")) {
continue;
}
String getName = "get" + voMethodName.substring(3);
Method poMethod = null;
try {
poMethod = poCl.getMethod(getName, null);
Object obj = poMethod.invoke(po, null);
voMethod.invoke(vo, new Object[] { obj });
} catch (Exception e) {
// 有异常则忽略,因此封闭异常
}
}
return vo;
}

public static Object voToPo(Object vo,Object po) {
Class voCl = vo.getClass();
Class poCl = po.getClass();
Method poMethods[] = poCl.getMethods();
if (poMethods.length == 0) {
return po;
}
for (int i = 0; i < poMethods.length; i++) {
Method poMethod = poMethods[i];
String poMethodName = poMethod.getName();
if (!poMethodName.startsWith("set")) {
continue;
}
String getName = "get" + poMethodName.substring(3);
Method voMethod = null;
try {
voMethod = voCl.getMethod(getName, null);
Object obj = voMethod.invoke(vo, null);
if(obj != null) //注意:这里只处理非空值的属性值
poMethod.invoke(po, new Object[] { obj });
} catch (Exception e) {
// 有异常则忽略,因此封闭异常
}
}
return po;
}

public static Object voToPo(Object vo, Class poClass) {
Object po = null;
try{
po = poClass.newInstance();
return voToPo(vo, po);
}catch(Exception ex){
// 有异常则忽略,因此封闭异常
}
return po;
}

public static Object poToVo(Object po, Class voClass) {
Object vo = null;
try{
vo = voClass.newInstance();
return poToVo(po, vo);
}catch(Exception ex){
// 有异常则忽略,因此封闭异常
}
return vo;
}
}

转载于:https://www.cnblogs.com/zshboke-2015/p/5333916.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值