这篇文章将为大家详细讲解有关java中怎么实现实体类相互转换赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
package com.yzw.manager.util; import java.lang.reflect.Field; import java.lang.reflect.Modifier; /** * yangzhiwei * 2个实体类相互转换赋值() * 字段名的类型和名称必须完全相同才可以,继承的父类字段无法赋值 * 代替set和get重复代码 */ public class ReflectToBean { public static Object transformToBean(Object source, Object target) { // 得到类对象 Object o=null; Class sourceCla = source.getClass(); Field[] sourceFields = sourceCla.getDeclaredFields(); Class targetCla = target.getClass(); Field[] targetFields = targetCla.getDeclaredFields(); try { o = targetCla.newInstance(); for (int i = 0; i < targetFields.length; i++) { Field ft = targetFields[i]; // 设置些属性是可以访问的 boolean isStaticFt = Modifier.isStatic(ft.getModifiers()); if (isStaticFt) { continue; } // 设置些属性是可以访问的 ft.setAccessible(true); for (int j = 0; j < sourceFields.length; j++) { Field fs = sourceFields[j]; // 设置些属性是可以访问的 boolean isStaticFs = Modifier.isStatic(fs.getModifiers()); if (isStaticFs) { continue; } // 设置些属性是可以访问的 fs.setAccessible(true); if (fs.getName().equals(ft.getName()) && fs.getType().toString().equals(ft.getType().toString())) { // 得到此属性的值 Object val = fs.get(source); ft.set(o, val); break; } } } } catch (Exception e) { e.printStackTrace(); } return o; } }
关于java中怎么实现实体类相互转换赋值就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。