首页 > 编程语言 > 详细

java 使用反射在dto和entity 实体类之间进行转换

时间:2016-03-18 02:14:21      阅读:1922      评论:0      收藏:0      [点我收藏+]

public class Utils {

/**

* 将dto和entity之间的属性互相转换,dto中属性一般为String等基本类型,

* 但是entity中可能有复合主键等复杂类型,需要注意同名问题

* @param src

* @param target

*/

public static Object populate(Object src, Object target) {

Method[] srcMethods = src.getClass().getMethods();

Method[] targetMethods = target.getClass().getMethods();

for (Method m : srcMethods) {

String srcName = m.getName();

if (srcName.startsWith("get")) {

try {

Object result = m.invoke(src);

for (Method mm : targetMethods) {

String targetName = mm.getName();

if (targetName.startsWith("set") && targetName.substring(3, targetName.length())

.equals(srcName.substring(3, srcName.length()))) {

mm.invoke(target, result);

}

}

} catch (Exception e) {

?

}

}

}

return target;

}

/**

* dto集合和实体类集合间的互相属性映射

* @param src

* @param target

* @param targetClass

* @return

*/

@SuppressWarnings("unchecked")

public static <S,T> List<T> populateList(List<S> src,List<T> target,Class<?> targetClass){

for(int i = 0;i<src.size();i++){

try {

Object object = targetClass.newInstance();

target.add((T) object);

populate(src.get(i),object);

?

} catch (Exception e) {

continue;//某个方法反射异常

}?

}

return target;

}

}

?

java 使用反射在dto和entity 实体类之间进行转换

原文:http://ktlb.iteye.com/blog/2283898

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!