范例:

public class ReflectUtils {

private ReflectUtils() {};

/**

* 对象反射赋值

*

* @param source 目标对象

* @param target 赋值对象

*/

public static void copyBeanFieldsValue(Object source, Object target) {

Field[] fields = target.getClass().getDeclaredFields();

if (fields != null && fields.length > 0) {

for (int x = 0; x < fields.length; x++) {

Object value = BeanUtil.getFieldValue(source, fields[x].getName());

try {

Method setterMethod = target.getClass()

.getDeclaredMethod("set" + StringUtils.capitalfor(fields[x].getName()), fields[x].getType());

value = TypeUtils.castToJavaBean(value, fields[x].getType());

setterMethod.invoke(target, value);

} catch (Exception e) {

}

}

}

}

/**

* 通过存储器赋值

*

* @param source 目标对象

* @param target 赋值对象

*/

public static void copyProperties(Object source, Object target) {

PropertyDescriptor[] propertyDescriptors = BeanUtil.getPropertyDescriptors(target.getClass());

if (propertyDescriptors != null && propertyDescriptors.length > 0) {

for (int x = 0; x < propertyDescriptors.length; x++) {

Object fieldvalue = BeanUtil.getFieldValue(source, propertyDescriptors[x].getName());

try {

Object castValue = TypeUtils.castToJavaBean(fieldvalue, propertyDescriptors[x].getPropertyType());

propertyDescriptors[x].getWriteMethod().invoke(target, castValue);

} catch (Exception e) {

}

}

}

}

}

public class StringUtils {

private StringUtils() {};

/**

* 首字母大写替换

*

* @param name 指定替换字符串

* @return 范例:

*/

public static String capital(String name) {

if (StrUtil.isBlank(name)) {

return name;

}

if (name.length() == 1) {

name = name.toUpperCase();

} else {

name = name.substring(0, 1).toUpperCase() + name.substring(1);

}

return name;

}

/**

* 首字母大写

*

* @param name 指定替换字符串

* @return 范例:

*/

public static String capitalFor(String name) {

if (StrUtil.isBlank(name)) {

return name;

}

if (name.length() == 1) {

name = name.toUpperCase();

} else {

String str = name.substring(0, 2);

if (Character.isLowerCase(str.charAt(0))) { // 第一个是否为小写

if (Character.isUpperCase(str.charAt(1))) { // 第二个是否为大写

return name;

} else {

name = name.substring(0, 1).toUpperCase() + name.substring(1);

}

}

}

return name;

}

}

java 拷贝属性值_Java 反射拷贝相同的属性值到指定对象中(两种实现方式)相关推荐

  1. java获取object属性值_java反射获取一个object属性值代码解析

    有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: privat ...

  2. Java反射修改返回值_java反射调用时如果返回值是整型数组怎么处理?

    想通过java的反射功能将javaBean转换成map: public static Map toMap(Object javaBean) { Map result = new HashMap< ...

  3. java之Map对象转java对象的两种简单方式

    我们在处理数据的时候,经常用到map对象转java对象,下面我们用代码演示下,希望能够帮助到有这方面需求的老哥. 要转换的java对象: public class Person {private In ...

  4. java map遍历_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  5. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  6. 初始化一个java空数组_Java 数组的两种初始化方式

    一.数组 1.数组中存储元素的类型是统一的,每一个元素在内存中所占用的空间大小是相同的,知道数组的首元素的内存地址,要查找的元素只要知道下标,就可以快速的计算出偏移量,通过首元素内存地址加上偏移量,就 ...

  7. java中两种异常类型_Java中的三种异常类型

    java中两种异常类型 Errors are the bane of users and programmers alike. Developers obviously don't want thei ...

  8. java 数组合并_拼接_详解Java合并数组的两种实现方式

    详解Java合并数组的两种实现方式 发布于 2020-7-27| 复制链接 摘记: 最近在写代码时遇到了需要合并两个数组的需求,突然发现以前没用过,于是研究了一下合并数组的方式,总结如下.1.Syst ...

  9. 在前端网页设计中 align 和 valign 两种对齐方式的不同取值区分(持续补充)

    文章目录 前言 一.align 与 valign 的对齐方式与取值 二.常见应用区分整理 2.1.H5 页面设计的取值 2.2.表格标题的取值 2.3.表格属性的取值 总结 前言 不知道大家在学习 H ...

最新文章

  1. CH - 6201 走廊泼水节(最小生成树,水题)
  2. string_view理解与用法(二)
  3. 深入一致性哈希(Consistent Hashing)算法原理
  4. 计算机绘图实训任务书,2012-2cad实训任务书与指导书.pdf
  5. 放射性渐变色html,html5 canvas绘制放射性渐变色效果
  6. 大众宣布成立欧洲公司 负责旗下电动汽车电池业务
  7. php 字符 index,php函数之字符串篇String
  8. 安装easydict
  9. 深度学习专项课程精炼图笔记!必备收藏 | 原力计划
  10. 揭秘 XR 开发难题,让虚拟现实不仅仅停留在好奇
  11. 【转】解决Fragment already active方法
  12. jmeter(二十二)内存溢出原因及解决方法
  13. c++中的构造函数和析构函数
  14. mysql8 groups关键字
  15. idea 快捷键修改去除 自动导入import 相关整理
  16. linux系统rc路由配置_Linux下路由配置梳理
  17. Access2016学习2
  18. gamit批量下载精密星历shell脚本
  19. android系统证书导入工具,添加Fiddler/Mitmproxy证书为安卓系统证书
  20. iOS逆向开发,突破微信强制升级,让低版本的iPhone也能正常使用

热门文章

  1. Android使用帧动画解决内存溢出问题
  2. 如何自定义一个异常类
  3. 【实践】腾讯PCG数据中台DEVOPS和AIOPS实践.pdf(附下载链接)
  4. 【报告分享】2021新青年国货消费研究报告:文化觉醒时代,宝藏国货迎复兴机遇.pdf(附下载链接)...
  5. 【干货】一张蓝图九大行动领域,实现AI赋能的企业转型-IBM.pdf(附下载链接)...
  6. Java学习——继承和多态
  7. 动荡下如何自救 | 社招一年收割BATDK算法offer
  8. camera android 黑屏,Android Camera.startPreview()启动未报错,但SurfaceView无画面输出
  9. php 面向接口,php开发app接口
  10. server之后安装ssms失败 安装sql_SQL Server 2019怎么安装?SQL Server 2019详细安装使用教程及SSMS连接...