BeanUtils复制属性

package xiao;

public class User2 {
	private String name;
	private String password;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public User2(String name, String password) {
		super();
		this.name = name;
		this.password = password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "User2 [name=" + name + ", password=" + password + "]";
	}
}

  

package xiao;

public class User1 {
	private String name;
	private String password;
	private String sex;
	public String getName() {
		return name;
	}
	public User1() {
		super();
		// TODO Auto-generated constructor stub
	}
	public User1(String name, String password, String sex) {
		super();
		this.name = name;
		this.password = password;
		this.sex = sex;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	@Override
	public String toString() {
		return "User1 [name=" + name + ", password=" + password + ", sex="
				+ sex + "]";
	}
}

  

package xiao;

import java.lang.reflect.InvocationTargetException;

import org.apache.commons.beanutils.BeanUtils;

public class Test {
    public static void main(String[] args) throws IllegalAccessException, InvocationTargetException {
        User1 user1 = new User1();
        User2 user2 = new User2("xiao", "xiong");
        BeanUtils.copyProperties(user1, user2);
        System.out.println(user1);
    }
}

User1 [name=xiao, password=xiong, sex=null]

依赖Jar包:

commons-beanutils-1.8.3.jar

commons-logging-1.1.1.jar

时间: 2024-11-05 02:20:52

BeanUtils复制属性的相关文章

利用BeanUtils在对象间复制属性

commons-beanutils是jakarta commons子项目中的一个软件包,其主要目的是利用反射机制对JavaBean的属性进行处理.我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度(什么,你的薪水按代码行数计算?那千万别让老板看到此帖哦) BeanUtils是这个包里比较常用的一个工具类,这里只介绍它的copyProperties()方法.该方法定义如下: public stati

Apache BeanUtils 拷贝属性的实现

先说坑: 对于装箱的Boolean类型,不能用isABC和setABC的组合,只能用getABC与setABC的组合(对于任何非基本类型,都是这样) beanUtils的BeanUtils.copyProperties看的不是成员,而是get与set方法,也就是属性(property),对于基本boolean是看is与set 本文环境: java version "1.8.0"Java(TM) SE Runtime Environment (build 1.8.0-b132)Java

BeanUtils对象属性copy的性能对比以及源码分析

1. 对象属性拷贝的常见方式及其性能 在日常编码中,经常会遇到DO.DTO对象之间的转换,如果对象本身的属性比较少的时候,那么我们采用硬编码手工setter也还ok,但如果对象的属性比较多的情况下,手工setter就显得又low又效率又低.这个时候我们就考虑采用一些工具类来进行对象属性的拷贝了. 我们常用的对象属性拷贝的方式有: Hard Code net.sf.cglib.beans.BeanCopier#copy org.springframework.beans.BeanUtils.cop

java反射复制属性值

1 /** 将sourceObj的属性拷贝到targetObj 2 * @param sourceObj 3 * @param targetObj 4 * @param clazz 从哪一个类开始(比如sourceObj对象层级为:Object->User->ChineseUser->ChineseMan->ChineseChongQingMan) 5 * 如果需要从ChineseUser开始复制,clazz就指定为ChineseUser.class 6 */ 7 public s

BeanUtils --- 封装属性到对象中

1.注意需要两个jar包: commons-beanutils-1.8.3.jar  和 commons-logging-1.1.3.jar public class Admin {//省略getset等通用方法 private int id; private String username; private String pwd; private Date date; } public class APP { @Test public void testBeanUtils() throws E

BeanUtils.copyProperties方法,当属性Date为null解决

问题描述:org.apache.commons.beanutils user对象和formBean对象都有属性birthday,而且都是java.sql.Date类型的 当进行BeanUtils.copyProperties(user,formBean);复制属性时候,formBean中属性birthday为null,那么就会出现如下异常 解决方法 在BeanUtils.copyProperties(user,formBean);前加上一行代码: BeanUtilsBean.getInstanc

java bean 对象属性复制框架BeanMapping-01-入门案例

项目简介 Bean-Mapping 用于 java 对象属性赋值. 项目中经常需要将一个对象的属性,赋值到另一个对象中. 常见的工具有很多,但都多少不够简洁,要么不够强大. 特性 支持对象属性的浅拷贝 变更日志 变更日志 快速开始 准备 JDK1.8 及其以上版本 Maven 3.X 及其以上版本 maven 项目依赖 <dependency> <groupId>com.github.houbb</groupId> <artifactId>bean-mapp

java利用反射完成不同类之间相同属性的复制

如果我们有两个不同的类对象,但他们具有相同的属性,我们怎么将一个对象的属性值复制给另外一个对象呢? 我们可以利用反射完成这个需求:首先我们利用反射得到两个对象的所有属性,再通过循环得到源对象(被复制的对象)每个属性值,然后再将值复制给目标对象(复制的对象)的属性. 源对象的类: public class UserSource { private String name; private int age; private String address; public String getName(

BeanUtils 以及BeanUtils.populate使用

Apache Jakarta Commons项目非常有用.我曾在许多不同的项目上或直接或间接地使用各种流行的commons组件.其中的一个强大的组件就是BeanUtils.我将说明如何使用BeanUtils将local实体bean转换为对应的value 对象: BeanUtils.copyProperties(aValue, aLocal) 上面的代码从aLocal对象复制属性到aValue对象.它相当简单!它不管local(或对应的value)对象有多少个属性,只管进行复制.我们假设local