把一个对象中的属性值赋值到另外一个对象中
需求:当一个对象保存到数据库中的时候,此时,此对象只包含部分属性。其他的属性依旧不变(其他修改操作会改变)。我们需要把确认要改变的属性赋值到需要改变的新的对象中。以此保存数据。字段少还好说,字段较多那么就麻烦大了。如果此种需求很大。那么就更废了。更不用说可能需要改变部分字段(添加,减少)是否在修改中。只能重新找,然后修改。太麻烦了。
那么,我们怎么做呢?用反射。以前也用过反射,只是没有做一个记录备案。现在,弄出来吧。下次直接拷贝就好了。直接上代码。
/*** 两个对象之间的赋值* @param source 来源对象* @param dest 去处对象* @return 去除对象* @throws IllegalAccessException* @throws NoSuchMethodException* @throws InvocationTargetException*/public static Object getAttribute(Object source,Object dest) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException {Field[] declaredFields = source.getClass().getDeclaredFields();LinkedHashMap<String,Object> hashMap = new LinkedHashMap<>();for(Field f:declaredFields){//打开私有访问f.setAccessible(true);//获取属性String name = f.getName();if(name!="username"){if(f.get(source)!=null) {String methodName = "set" + name.substring(0, 1).toUpperCase() + name.substring(1, name.length());Method method = source.getClass().getMethod(methodName, f.getType());method.invoke(dest, f.get(source));}}}return dest;
解释:反射的方法不解释了。这个已经记住了。但是,获取Method的方法并没有记者。在此打一下,增加记忆。
source.getClass().getMethod(methodName,'methodName的方法的参数类型');
method.invoke('去除的对象',"属性值")
把一个对象中的属性值赋值到另外一个对象中相关推荐
- 用泛型方法Java从实体中提取属性值,以及在泛型方法中的使用
public <T> T getFieldValue(Object target, String fieldName, Class<T> typeName){try {Obje ...
- java bean对象属性复制,将一个对象的属性值赋值给另一个对象,对象之间的复制方法
注意依赖,springframework下的复制顺序为 (目标对象,新对象) import org.springframework.beans.BeanUtils;public static void ...
- 将对象的属性值复制到另一个对象中
将对象的属性值复制到另一个对象中 /**** 将第一个对象的属性值复制到第二个对象中* @param <T> 第一个对象* @param <R> 第二个对象*/ class H ...
- SpringMVC js如何获取后台model中的属性值
SpringMVC js如何获取后台model中的属性值 companylist 如何获取 var companylist="${companylist}"; 希望对你有所帮助 个 ...
- s:property=a value=/取的s:debug/s:debug中的value stack中的属性值
<s:property="a" value=""/>取的<s:debug></s:debug>中的value stack中 ...
- Java:比较两个对象中全部属性值是否相等
点击关注公众号,实用技术文章及时了解 来源:xiaoer.blog.csdn.net/article/details/85005295 例如下述Java类: import java.io.Serial ...
- 在jsp中调用常量类中的属性值
在jsp中想要调用常量类中的属性值方法: 1. 在jsp中导入此常量类 <%@page import="com.Zyp.constant.FlagConstant"%& ...
- 关于ArcGIS中选择属性值为空的语句
关于ArcGIS中选择属性值为null的语句 使用Select by Attributes工具编写Where语句 选中某字段值为空值的要素 使用Select by Attributes工具编写Wher ...
- 微信小程序如何实现通过js修改wxml的for循环中的属性值
微信小程序如何实现通过js修改wxml的for循环中的属性值 要实现的效果 具体代码 要实现的效果 点击每一个活动选项,实现显示对应的操作按钮 具体代码 首先要在对应页面的js中给data中定义数组, ...
- CSS中position属性值有哪些?
CSS中position属性值有哪些? 1.position:relative;相对定位 1> 不影响元素本身特性(无论区块元素还是内联元素会保留其原本特性) 2> 不会使元素脱离文档流( ...
最新文章
- DOS下查看局域网的ip使用情况,以及ip对应的主机名
- 服务器选型:怎样的一款服务器产品才算是优秀的
- 续流二极管原理及应用
- Matlab中的类(Class),Matlab中的class用法
- Go单元测试从入门到放弃—0.单元测试基础
- MonkeyDevice Class
- bp神经网络预测模型原理,神经网络模型怎么预测
- 2020-02-28
- 最重要的100個英文字首字根 -- 字根 (3)
- python链家数据分析统计服_Python数据分析实战-链家北京二手房价分析
- OV7725鹰眼摄像头
- 基于Conv3D实现三维立体MNIST数据集分类
- latex+bibtex+jabref
- java unicode是什么意思_(转)谈谈对Java中Unicode、编码的理解
- 私人定制情人节告白网站并且部署上线,谁说程序员没有爱!超详细步骤!源码分享!
- 星球乐园 | 害怕水逆是因为你已经很久没有读完一本书
- 拥有一套如何让客户购买的方法?
- 单元测试 chapter3
- Python - 归一化与反归一化
- DIV布局——化妆品商城-功能齐全(43页) HTML+CSS+JavaScript web大作业 静态网页