zoukankan      html  css  js  c++  java
  • BeanUtils低依赖属性拷贝测试(一)

    javabean

    package entity;
    
    import java.util.Date;
    /**
     * 一个测试用:
     * 		student,javaBean
     * @author mzy
     *		一个标准的javaBean:
     *			1) 属性只要是private修饰的;
     *			2) 提供setter和getter方法;
     *			3) 提供无参构造。
     *		就行了;有参构造等不是必须的。
     */
    public class Student {
    	private int id;
    	private String name;
    	private double score;
    	private boolean gender;
    	private Date birth;
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public double getScore() {
    		return score;
    	}
    	public void setScore(double score) {
    		this.score = score;
    	}
    	public boolean isGender() {
    		return gender;
    	}
    	public void setGender(boolean gender) {
    		this.gender = gender;
    	}
    	public Date getBirth() {
    		return birth;
    	}
    	public void setBirth(Date birth) {
    		this.birth = birth;
    	}
    	
    	@Override
    	public String toString() {
    		return "Student [id=" + id + ", name=" + name + ", score=" + score + ", gender=" + gender + ", birth=" + birth
    				+ "]";
    	}
    }
    

    属性拷贝测试:

    package beanutil;
    
    import java.util.Date;
    
    import org.apache.commons.beanutils.BeanUtils;
    
    import entity.Student;
    
    /**
     * 我发现很多包都有commons-xxx,后面知道commons在很多Apache的项目中会使用
     * 一般commons都是apache公司的产品。
     * 		其中dbutils是实际使用的包;
     * 		logging是日志文件。
     * 
     * @author mzy
     * 
     * dbutils:
     * 		从一个javaBean对象中拷贝属性
     * 		把一个javaBean对象的属性拷贝到另一个javaBean对象中
     * 		从一个map中把属性拷贝到javaBean对象中
     */
    public class Demo01 {
    	public static void main(String[] args) throws Exception {
    		/*
    		 * 1) 拷贝一个javabean对象的属性
    		 */
    		Student s = new Student();
    		s.setId(1);
    		s.setName("mzy");
    		s.setScore(99.99);
    		s.setGender(true);
    		s.setBirth(new Date());
    		
    		// 1) 把id,name属性值从s对象拷贝到s2的对象中
    		
    		// Student s2 = new Student();
    		// s2.setId(s.getId());
    		
    		Object s2 = Class.forName("entity.Student").newInstance();
    		
    		/**
    		 * bean:拷贝到的bean对象;
    		 * name:拷贝的属性名称(可以另取);
    		 * value:拷贝的值;
    		 * 
    		 * 使用BeanUtils的好处是:
    		 * 		在进行拷贝的时候,依赖性低;
    		 * 		不像上面通过set,get方法如果立即报错!(相互之间依赖性高)
    		 */
    		BeanUtils.copyProperty(s2, "id", "1");
    		
    		BeanUtils.copyProperty(s2, "id", s.getId()); // 不需要依赖于Student对象
    		
    		System.out.println(s);
    		System.out.println(s2);
    		
    	}
    }
    


  • 相关阅读:
    c#的逆向工程-IL指令集
    利用nginx concat模块合并js css
    DotNetOpenAuth实践之Webform资源服务器配置
    STL使用迭代器逆向删除
    驱动安装时的错误
    How to detect the presence of the Visual C++ 2010 redistributable package
    Shell脚本使用汇总整理——文件夹及子文件备份脚本
    Shell脚本使用汇总整理
    Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本
    Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053467.html
Copyright © 2011-2022 走看看