package com.zyhao.openec.catalog.pojo;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
 * 将 A(bean)中的值copy到B(bean)
 * 注意:1,必须是同一个实体类
 *     2.两个不同的对象
 *     3.属性只能包含有get和set方法的类
 * @author Administrator
 *
 */
public class BeanCopyUitl {

public static void reflectAbeanToBbean(Object class1,Object class2) throws NoSuchMethodException,  
    IllegalAccessException, IllegalArgumentException,  
    InvocationTargetException { 
    // 获取实体类的所有属性,返回Field数组  
        Field[] field1 = class1.getClass().getDeclaredFields();
        Field[] field2 = class2.getClass().getDeclaredFields();
        for (int i = 0; i < field1.length; i++) {  
        // 获取属性的名字  
            String name = field1[i].getName();  
            // 将属性的首字符大写,方便构造get,set方法  
            name = name.substring(0, 1).toUpperCase() + name.substring(1);  
            Method m1 = class1.getClass().getMethod("get" + name);  
            // 调用getter方法获取属性值  
            Object value =  m1.invoke(class1);  
            if (value != null) {  
                Field f = field2[i];  
                f.setAccessible(true); //设置些属性是可以访问的  
               // Object val = f.get(class2);//得到此属性的值     
                f.set(class2,value) ;        //给属性设值  
            } 
        }
    }
 /* public static void main(String[] args) throws Exception {
 Date date = new Date();
 UserInfo u1 = new UserInfo("123","caiyong", 18, date);
 UserInfo u2 = new UserInfo(null,"", 1898, null);
 reflectTest1(u1,u2);
 System.out.println(u2.toString());
  }*/
}

java 将A对象的值copy到B对象(根据属性名设置属性值)相关推荐

  1. java 反射机制--根据属性名获取属性值

    1.考虑安全访问范围内的属性,没有权限访问到的属性不读取 [java] view plaincopy /** * 根据属性名获取属性值 * * @param fieldName * @param ob ...

  2. java 操作属性值_java反射机制根据属性名获取属性值的操作

    一.考虑安全访问范围内的属性,没有权限访问到的属性不读取 /** * 根据属性名获取属性值 * * @param fieldName * @param object * @return */ priv ...

  3. java通过属性名获取属性值_java反射机制根据属性名获取属性值的操作

    java反射机制根据属性名获取属性值的操作,属性,对象,反射,访问权限,还可以 java反射机制根据属性名获取属性值的操作 易采站长站,站长之家为您整理了java反射机制根据属性名获取属性值的操作的相 ...

  4. 循环给对象创建属性名和属性值

    4.7号笔记: ​ ① 循环给对象创建属性名和属性值: data.forEach(item => {item.identity = identity;})console.log(data);

  5. java中遍历实体类,获取属性名和属性值

    方式一(实体类): //java中遍历实体类,获取属性名和属性值public static void testReflect(Object model) throws Exception{for (F ...

  6. 对象的属性名与属性值

    注意共有5个步骤,按顺序操作下去 1.在对象中保存的值称为属性,对象的属性名不强制要求遵守标识符规则,什么名称都可以,我对象属性的语法:1对象.属性名,注意:如果对象中没有的属性,不报错而是返回und ...

  7. java 反射根据属性名获取属性值

    一.背景 在使用三方sdk的时候如果三方提供的api满足不了我们的需求,这时候就需要通过阅读三方sdk的代码,并通过反射来实现我们的需求. 二.根据属性名获取属性值 1.考虑安全访问范围内的属性,没有 ...

  8. 43.属性名和属性值

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>属性名 ...

  9. JavaScript中的对象的属性名和属性值

    1.属性名 创建一个对象 var obj =new Object(); 向对象中添加属性 obj.name ="Jerry"; 那么,name就是属性名,"Jerry&q ...

最新文章

  1. 一步一步webpart-webpart如何得到?(2)
  2. ABP入门系列(20)——使用后台作业和工作者
  3. docker mysql开机自启动_Docker 学会让容器开机自启服务
  4. FusionInsight怎么帮「宇宙行」建一个好的「云数据平台」?
  5. Linux 命令(6)—— sort 命令
  6. Ubuntu install mysql
  7. 从决策树学习谈到贝叶斯分类算法、EM、HMM - 结构之法 算法之道
  8. 那些年我们一起用过的Hybrid App
  9. 【供应链金融】五阿哥:如何打造钢铁电商独特供应链金融风控体系?
  10. win10系统bat脚本自启动程序、修改壁纸、更换主题区分主副屏壁纸
  11. Android EditText 获得焦点不显示光标
  12. 数字图像处理——隐形眼镜缺陷检测算法
  13. 【引用】100句经典刺透人心,伤愈后才能更坚强
  14. POJ 2152 树型DP //很棒的题
  15. 宠物食品“味及”完成数百万天使轮+融资
  16. 为什么加密货币投资者正在放弃他们的美国公民身份
  17. 如何做好检测报告的质量控制?-LIMS2
  18. 区域治理杂志区域治理杂志社区域治理编辑部2022年第40期目录
  19. 字符串匹配 KMP算法 C++
  20. 下载lpv9_v9社区APP下载-v9社区APP官方版 v1.0.4-114手机乐园

热门文章

  1. 2017inter面食德提姆
  2. 微机原理-I/O并行接口和并行接口芯片8255A
  3. 基于STM32使用嵌套结构体摸索内存对齐
  4. Vue简单的查看更多功能
  5. HW OD 机试攻略
  6. JPA中No entity found for query
  7. SAP服务器文件上传和下载
  8. Occlusions, Motion and Depth Boundaries with a Generic Network for Disparity, Optical Flow or Scene
  9. Transformer课程 第46章 Transformer模型TAPAS架构
  10. 校园疫情管理系统-校园疫情防控系统-校园疫情管理