zoukankan      html  css  js  c++  java
  • JAVA中JavaBean对象之间拷贝的方法

      JAVA中JavaBean对象之间的拷贝通常是用get/set方法,但如果你有两个属性相同的JavaBean或有大部分属性相同的JavaBean,有个更简便的方法,他们之间的拷贝可以通过copyProperties方法进行。方法如下:

    1 User u = new User();//source
    2 u.setUid("1");
    3 u.setName("tom");
    4 u.setAge((short)18);
    5                 
    6 Student s = new Student();//target
    7                 
    8 BeanUtils.copyProperties(u, s);
    9 System.out.println("[sid]"+s.getSid()+"#[name]"+s.getName()+"#[sex]"+s.getSex()+"#[age]"+s.getAge());

    输出如下:

    总结:copyProperties方法的作用是将两个对象之前相同的属性进行复制,这里的相同不仅是属性字段名称相同,并且字段类型也要相同。比如上面两个JavaBean对象只有name属性相同,因此只成功复制了name属性的值。

    User对象:

     1 public class User {
     2 
     3     public String uid;
     4     public String name;
     5     public short age;
     6     
     7     public String getUid() {
     8         return uid;
     9     }
    10     public void setUid(String uid) {
    11         this.uid = uid;
    12     }
    13     public String getName() {
    14         return name;
    15     }
    16     public void setName(String name) {
    17         this.name = name;
    18     }
    19     public short getAge() {
    20         return age;
    21     }
    22     public void setAge(short age) {
    23         this.age = age;
    24     }
    25 }

    Student对象:

     1 public class Student {
     2 
     3     public String sid;
     4     public String name;
     5     public String sex;
     6     public int age;
     7     
     8     public String getSid() {
     9         return sid;
    10     }
    11     public void setSid(String sid) {
    12         this.sid = sid;
    13     }
    14     public String getName() {
    15         return name;
    16     }
    17     public void setName(String name) {
    18         this.name = name;
    19     }
    20     public String getSex() {
    21         return sex;
    22     }
    23     public void setSex(String sex) {
    24         this.sex = sex;
    25     }
    26     public int getAge() {
    27         return age;
    28     }
    29     public void setAge(int age) {
    30         this.age = age;
    31     }
    32 }

    2018-7-9 更新字段类型不同的说明

  • 相关阅读:
    Net分层架构
    JavaScript设计模式_01_单例模式
    JavaScript设计模式_04_迭代器模式
    JavaScript设计模式_03_代理模式
    JavaScript设计模式_02_策略模式
    eclipse Indigo Helios Galileo几种版本的意思
    转:Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记
    一台服务器多个TomCat设置
    转:Struts2如何获取request、session和application对象
    JAVA Swing中JTable的固定列问题
  • 原文地址:https://www.cnblogs.com/pcheng/p/7120094.html
Copyright © 2011-2022 走看看