新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关java中怎么实现实体类相互转换赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
10年积累的网站制作、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有北海免费网站建设让你可以放心的选择与我们合作。
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中怎么实现实体类相互转换赋值就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。