DTO互转

来源:互联网 发布:python数据分析工具 编辑:程序博客网 时间:2024/06/06 10:46

/**    × 通过常规反射形式    * DTO对象转换为实体对象。如命名不规范或其他原因导致失败。 * @param t 源转换的对象 * @param e 目标转换的对象 * */public static <T, E> void transalte(T t,  E e){Method[] tms = t.getClass().getDeclaredMethods();Method[] tes = e.getClass().getDeclaredMethods();for(Method m1:tms){if(m1.getName().startsWith("get")){String mNameSubfix=m1.getName().substring(3);String forName="set" + mNameSubfix;for(Method m2:tes){if(m2.getName().equals(forName)){                       // 如果类型一致,或者m1的返回类型是m2的参数类型的父类或接口boolean canContinue = m1.getReturnType().isAssignableFrom(m2.getParameterTypes()[0]);if (canContinue) {try {m2.invoke(e, m1.invoke(t));break;} catch (Exception e1) {e1.printStackTrace();}}}}}}}

0 0
原创粉丝点击