java 拷贝属性值_Java 反射拷贝相同的属性值到指定对象中(两种实现方式)
范例:
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 反射拷贝相同的属性值到指定对象中(两种实现方式)相关推荐
- java获取object属性值_java反射获取一个object属性值代码解析
有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: privat ...
- Java反射修改返回值_java反射调用时如果返回值是整型数组怎么处理?
想通过java的反射功能将javaBean转换成map: public static Map toMap(Object javaBean) { Map result = new HashMap< ...
- java之Map对象转java对象的两种简单方式
我们在处理数据的时候,经常用到map对象转java对象,下面我们用代码演示下,希望能够帮助到有这方面需求的老哥. 要转换的java对象: public class Person {private In ...
- java map遍历_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
- java中两种遍历集合的方式_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
- 初始化一个java空数组_Java 数组的两种初始化方式
一.数组 1.数组中存储元素的类型是统一的,每一个元素在内存中所占用的空间大小是相同的,知道数组的首元素的内存地址,要查找的元素只要知道下标,就可以快速的计算出偏移量,通过首元素内存地址加上偏移量,就 ...
- java中两种异常类型_Java中的三种异常类型
java中两种异常类型 Errors are the bane of users and programmers alike. Developers obviously don't want thei ...
- java 数组合并_拼接_详解Java合并数组的两种实现方式
详解Java合并数组的两种实现方式 发布于 2020-7-27| 复制链接 摘记: 最近在写代码时遇到了需要合并两个数组的需求,突然发现以前没用过,于是研究了一下合并数组的方式,总结如下.1.Syst ...
- 在前端网页设计中 align 和 valign 两种对齐方式的不同取值区分(持续补充)
文章目录 前言 一.align 与 valign 的对齐方式与取值 二.常见应用区分整理 2.1.H5 页面设计的取值 2.2.表格标题的取值 2.3.表格属性的取值 总结 前言 不知道大家在学习 H ...
最新文章
- CH - 6201 走廊泼水节(最小生成树,水题)
- string_view理解与用法(二)
- 深入一致性哈希(Consistent Hashing)算法原理
- 计算机绘图实训任务书,2012-2cad实训任务书与指导书.pdf
- 放射性渐变色html,html5 canvas绘制放射性渐变色效果
- 大众宣布成立欧洲公司 负责旗下电动汽车电池业务
- php 字符 index,php函数之字符串篇String
- 安装easydict
- 深度学习专项课程精炼图笔记!必备收藏 | 原力计划
- 揭秘 XR 开发难题,让虚拟现实不仅仅停留在好奇
- 【转】解决Fragment already active方法
- jmeter(二十二)内存溢出原因及解决方法
- c++中的构造函数和析构函数
- mysql8 groups关键字
- idea 快捷键修改去除 自动导入import 相关整理
- linux系统rc路由配置_Linux下路由配置梳理
- Access2016学习2
- gamit批量下载精密星历shell脚本
- android系统证书导入工具,添加Fiddler/Mitmproxy证书为安卓系统证书
- iOS逆向开发,突破微信强制升级,让低版本的iPhone也能正常使用
热门文章
- Android使用帧动画解决内存溢出问题
- 如何自定义一个异常类
- 【实践】腾讯PCG数据中台DEVOPS和AIOPS实践.pdf(附下载链接)
- 【报告分享】2021新青年国货消费研究报告:文化觉醒时代,宝藏国货迎复兴机遇.pdf(附下载链接)...
- 【干货】一张蓝图九大行动领域,实现AI赋能的企业转型-IBM.pdf(附下载链接)...
- Java学习——继承和多态
- 动荡下如何自救 | 社招一年收割BATDK算法offer
- camera android 黑屏,Android Camera.startPreview()启动未报错,但SurfaceView无画面输出
- php 面向接口,php开发app接口
- server之后安装ssms失败 安装sql_SQL Server 2019怎么安装?SQL Server 2019详细安装使用教程及SSMS连接...