BeanUtils使用将一个对象拷贝到另外一个对象

这里的BeanUtils是BeanUtils是org.springframework.beans.BeanUtils,和org.apache.commons.beanutils.BeanUtils是有区别的BeanUtils.copyProperties(ojb, tarObj, "id","ver");将obj的字段拷贝到tarObj中,除了id和ver,第三个字段之后是可变参数,用来指定哪些字段不用拷贝
 public void test() throws Exception
    {
        //1.生成对象
        Student s1 = new Student();
        Student s2 = new Student();

        //2.通过set方法赋值
        s1.setId(1);
        s1.setName("VN");
        //s1.setAge(19);//基本数据类型可以为null,null也能拷贝
        s1.setClassID(5);
        s1.setBirthday(new Date());//特殊类型不能为null

        //需求:把s1的属性值拷贝到S2中,注意参数的顺序,第三个参数之后为可变参数,指定哪些字段不用拷贝
        BeanUtils.copyProperties(s1, s2,"id");

        System.out.println(s1);
        System.out.println(s2);
    }
时间: 2024-11-02 01:02:17

BeanUtils使用将一个对象拷贝到另外一个对象的相关文章

也说Javascript对象拷贝及疑问

也说Javascript对象拷贝及疑问 一.浅拷贝 当我们需要将一个对象拷贝至另一个对象时,我们一般会这么实现 function shadowCopy(source,target){ var target=target||{}; for(var i in source) { target[i]=source[i]; } return target; } var a={name:'Lily',age:19}; var b=shadowCopy(a);//b={name:'Lily',age:19}

Python对象拷贝——深拷贝与浅拷贝

对象赋值 浅拷贝 深拷贝 1. 对象赋值 对象的赋值实际上是对对象的引用.也就是说当把一个对象赋值给另一个对象时,只是拷贝了引用.如: >>> t1 = tuple('furzoom') >>> t2 = t1 >>> id(t1),id(t2) (139792198303936, 139792198303936) 上面t1和t2代表的是同一个对象. 2. 浅拷贝 除了上面将一个对象直接赋值给另一个对象外,还有两种常用的方法对对象进行拷贝:使用切片操作

Java 开发中的对象拷贝

前言 在 Java 开发中,很多时候需要将两个属性基本相同的对象进行属性复制,比如 DO 转 VO等等. 本文主要介绍自己实现的简易拷贝工具类与 Spring 提供的属性拷贝的对比. Spring 提供的属性拷贝 在 Spring 中直接调用 BeanUtils.copyProperties();即可. 它的核心通过循环 target 的所有方法名,然后在 source 中找到对应的方法名,最后通过反射从 source 中获取并写入 target 中. Spring 没有通过 java.lang

Android学习---ListView和Inflater的使用,将一个布局文件转化为一个对象

本文将介绍ListView和Inflater的使用,将接上一篇文章内容. 一.什么是ListView? 在android开发中ListView是比较常用的控件,ListView 控件可使用四种不同视图显示项目,1.大(标准)图标2.小图标3.列表4.报表,比较常用的是列表的形式.ListItem 对象可包含文本和图片.然而,若要使用图片则必须通过 Icons 和 SmallIcons 属性引用 ImageList控件. 本文将接着上一篇文章,将sqlite数据库的数据以列表的形式显示出来. 二.

OC中对象拷贝概念

OC中的对象拷贝概念,这个对于面向对象语言中都会有这种的问题,只是不同的语言有不同的解决方式:C++中有拷贝构造函数,Java中需要实现Cloneable接口,在clone方法中进行操作.但是不过OC更偏向于Java这种方式,OC中如果一个对象需要被拷贝,他需要实现协议:<NSCopying>.<NSMutableCopying>从名字上我们可以看到,一个协议是用于不可变对象的,一个协议适用于可变对象的 首先来介绍一下对象的拷贝的概念吧:为什么要由对象的拷贝这么一个概念呢?看一个场

C# 对象拷贝问题 =等同于浅拷贝

大家都知道,在C#中变量的存储分为值类型和引用类型两种,而值类型和引用类型在数值变化是产生的后果是不一样的,值类型我们可以轻松实现数值的拷贝,那么引用类型呢,在对象拷贝上存在着一定的难度. 下面我么从一个经典的例子谈起. private void  doChange(string a)  {   int b = a;   b = "2";   System.Console.WriteLine(b);   System.Console.WriteLine(a);  } 当我么调用上面的函

Java 对象拷贝答疑

Java 对象拷贝答疑 @author ixenos 关于clone[对象拷贝] 在实际编程过程,有时候我们会遇到一种情况:当你有一个对象A,在某一个时刻,A已经保存了对应的属性值,而且这些值本身是有效的,这个时候可能需要一个和A完全相同的对象B,并且当B里面的属性值发生变化的时候,A中的属性值不受影响,可以理解为A和B独立,但是B的初始化不是按照我们平时创建该对象的时候的初始化操作,B的初始化数据完全来自A. 对Java存储模型了解的人都明白,在Java里面如果针对两个对象引用采取赋值操作的时

js对象拷贝

在JS中,一般的=号传递的都是对象/数组的引用,并没有真正地拷贝一个对象,那如何进行对象的深度拷贝呢?如果你对此也有疑问,这篇文章或许能够帮助到你 一.对象引用.浅层拷贝与深层拷贝的区别 js的对象引用传递理解起来很简单,参考如下代码: var a = {name:'wanger'} var b = a ; a===b // true b.name = 'zhangsan' a.name //'zhangan' 上述代码中,使用了=进行赋值,于是b指向了a所指向的栈的对象,也就是a与b指向了同一

JavaScript 对象拷贝

JavaScript 对象拷贝 JavaScript 如何复制一个对象?浅拷贝可以复制出原始值属性,但是对于引用值属性仅仅复制了一份引用.利用递归对每个引用值属性的属性进行复制,这种方式称之为深拷贝 问题引入 var person1 = { name: '张三', age: "22" } var person2 = person1; 我们希望拷贝一份 person1 的属性给 person2,赋值是最简单的做法,但是这并不是我们想要的结果. 因为这仅仅是将 person1.person