类和类之间属性复制,必须存在get和set方法的属性才可以复制
来源:互联网 发布:网络分离器哪个牌子好 编辑:程序博客网 时间:2024/06/06 14:28
package com.hjzx.common.util;import java.lang.reflect.Field;import java.lang.reflect.Method;public class ModelCopy {/** * 类和类之间属性复制,必须存在get和set方法的属性才可以复制 * @param source 源对象 * @param target 目标对象 * @return */public static void copy(Object source,Object target){Field[] fields = source.getClass().getDeclaredFields();for (int i = 0; i < fields.length; i++) {copyField(source,target,fields[i]);}}private static void copyField(Object source,Object target,Field field){String fieldName = null;String getFieldName = null;String setFieldName = null;Object value = null;try{fieldName = field.getName();String mFieldName = fieldName.replaceFirst(fieldName.substring(0,1), fieldName.substring(0,1).toUpperCase());getFieldName = "get" + mFieldName;Method getMethod = source.getClass().getMethod(getFieldName, new Class[] {});value = getMethod.invoke(source, new Object[] {});if(value == null){return;}setFieldName = "set" + mFieldName;Method setMethod = getMethod(target,setFieldName);if(setMethod == null){return;}setMethod.invoke(target, new Object[] {value});}catch(Exception e){}}private static Method getMethod(Object target,String setFieldName){Method method = null;Method[] methods = target.getClass().getMethods();for (int i = 0; i < methods.length; i++) {method = methods[i];if(method.getName().equals(setFieldName)){return method;}}return null;}}
1 0
- 类和类之间属性复制,必须存在get和set方法的属性才可以复制
- JS属性的get和set方法
- pytho 学习整理----pytho 类 属性set和get 方法
- object 类的set和get方法,点语法 和 属性生成器
- java对象复制和属性值复制工具类
- python3中类的私有属性和get,set
- Java 对类中的属性使用set/get方法的意义和用法
- java 中对类中的属性使用set/get方法的意义和用法
- java 中对类中的属性使用set/get方法的意义和用法
- Java中对类中的属性使用set/get方法的意义和用法
- 根据属性名字调用相应的get和set方法
- PHP动态创建属性的get和set方法
- 实现两个实体类属性之间的复制
- JBuilder可以根据属性生成set和get函数
- 属性,简化get和set
- C# get和set属性
- 类属性复制实现
- Get Set属性可以重写的
- 字符流中第一个不重复的字符
- 如何设置CentOS 5的yum源[上海交通大学http://ftp.sjtu.edu.cn/centos/5.0/os/x86_64]
- 利用递归实现求n位所有格雷码
- Oracle(十一)PL/SQL 存储函数 & 存储过程
- 3D Transformations
- 类和类之间属性复制,必须存在get和set方法的属性才可以复制
- DBCP连接池
- 初识App Inventor 2(AI2)
- 使QT内建的对话框文字显示为中文 window7+vs2010+qt
- 修改浏览器的User-Agent来伪装你的浏览器和操作系统
- (Google)TextView属性大全(API-16)
- 【算法】在整数数组求中出两两之差绝对值最小的值
- 关于javascript中apply()和call()方法的区别
- project config