/** 将sourceObj的属性拷贝到targetObj
* @param sourceObj
* @param targetObj
* @param clazz 从哪一个类开始(比如sourceObj对象层级为:Object->User->ChineseUser->ChineseMan->ChineseChongQingMan)
* 如果需要从ChineseUser开始复制,clazz就指定为ChineseUser.class
*/
public static void cpoyObjAttr(Object sourceObj, Object targetObj, Class<?> clazz)throws Exception
{
if(sourceObj==null || targetObj==null)
{
throw new Exception("源对象和目标对象不能为null");
}
Field[] fields=clazz.getDeclaredFields();
for(int i = 0; i < fields.length; i++)
{
//System.out.println(fields[i].getName());
//Object sourceValue=fields[i].get(sourceObj); Method getMethod = sourceObj.getClass().getMethod("get" + fields[i].getName());
Object sourceValue = (Object) getMethod.invoke(sourceObj, null);
if(null==sourceValue)
{
sourceValue = null;
}
fields[i].setAccessible(true);
fields[i].set(targetObj,sourceValue); // System.out.println(fields[i].getName()+";"+clazz+";"+fields[i].getType());
// Method setMethod = targetObj.getClass().getMethod("set" +fields[i].getName(), fields[i].getType());
// setMethod.invoke(targetObj, sourceValue.toString());
}
if(clazz.getSuperclass()==Object.class){
return;
}
cpoyObjAttr(sourceObj,targetObj,clazz.getSuperclass());
}

java反射复制属性值的更多相关文章

  1. java 反射获取属性值 方法

    public static void main(String[] args) throws SecurityException, ClassNotFoundException, IllegalArgu ...

  2. 通过反射将一个java对象的属性值转换为一个Map

    将一个java对象的属性值转换为一个Map: import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.P ...

  3. C# 反射获取属性值、名称、类型以及集合的属性值、类型名称

    实体类 class Product { public string Id { get; set; } public string Name { get; set; } public List<P ...

  4. java 反射得到属性与属性值

    反射可以破坏所有的封装性,比如这次通过反射得到的属性与属性值: /** * 得到属性值 * @param obj */ public static void readAttributeValue(Ob ...

  5. 【java】java反射获取属性和属性值,java反射设置属性和属性值

    今日份代码如下: /** * * @Author: SXD * @Description: * @Date: create in 2019/9/20 15:39 */ public class Pro ...

  6. spring利用注解方式实现Java读取properties属性值

    1. 建立properties文件:我在resource下面建立一个config文件夹,config文件夹里面有mytest.properties文件,文件内容如下: sam.username=sam ...

  7. C#使用反射设置属性值

    最近在Refix一个支持Excel文件导入导出功能时,发现有用到反射的相关技能.故而在网上查了些资料,通过代码调试加深下理解. class Program { static void Main(str ...

  8. C#反射设置属性值和获取属性值

    /// /// 获取类中的属性值 /// /// /// /// public string GetModelValue(string FieldName, object obj) { try { T ...

  9. [转] C#反射设置属性值和获取属性值

    /// /// 获取类中的属性值 /// /// /// /// public string GetModelValue(string FieldName, object obj) { try { T ...

随机推荐

  1. required

    required,这是HTML5中的一个新属性:这是HTML5中input元素中的一个属性. required译为必须的,在input元素中应用这一属性,就表示这一input元素节点是必填的或者必选的 ...

  2. 热修复-Nuwa学习篇

    nuwa热修复是基于qq空间团队的思路,最近的热度话题了,很多种方案,自己先研究几种方案,基本上都各有优势,学习肯定得先挑个软柿子捏了,自己对比了一下,发现nuwa代码量少点,所以就决定了,先研究nu ...

  3. 真正的汉化-PowerDesigner 16.5 汉化

    一.背景 经常使用PowerDesigner,之前使用15版本,后来16出来后,就一直在使用16,不过一直是英文.一些同事对使用英文版总显示有些吃力. 遍寻百度.必应,都没有找到真正的针对版本16的汉 ...

  4. crontab介绍

    1.Cron的启动与关闭 由于Cron是Linux的内置服务,可以用以下的方法启动.关闭这个服务: /sbin/service crond start           //启动服务/sbin/se ...

  5. 关于我 — About Me

    个人简介 姓名:周旭龙 关注:.NET开发技术.Web前端技术 邮箱:edisonchou@hotmail.com GitHub: https://github.com/edisonchou 主要经历 ...

  6. Java 开发主流 IDE 环境体验

    前言 本来应该继续从 Oracle 官网搬砖的,但是随着示例代码越来越复杂,涉及的类库越来越多,使用 Vim 写 Java 代码就很力不从心了,是时候上 IDE 了.我最熟悉的 IDE 环境是 Ecl ...

  7. 浅析Go语言的Interface机制

    前几日一朋友在学GO,问了我一些interface机制的问题.试着解释发现自己也不是太清楚,所以今天下午特意查了资料和阅读GO的源码(基于go1.4),整理出了此文.如果有错误的地方还望指正. GO语 ...

  8. Webpack+React+ES6开发模式入门指南

    React无疑是今年最火的前端框架,github上的star直逼30,000,基于React的React Native的star也直逼20,000.有了React,组件化似乎不再步履蹒跚,有了Reac ...

  9. ASP.NET Web API Model-ValueProvider

    ASP.NET Web API Model-ValueProvider 前言 前面一篇讲解了Model元数据,Model元数据是在Model绑定中很重要的一部分,只是Model绑定中涉及的知识点比较多 ...

  10. 有意思的记录-python

    1.变量 类变量紧接在类名后面定义,相当于java和c++的static变量 实例变量在init里定义,相当于java和c++的普通变量 2.日期 #coding:utf-8 import time ...