欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用BeanUtils.copyProperties進(jìn)行對象之間的屬性賦值

 更新時(shí)間:2020年05月14日 10:51:13   作者:Terisadeng  
這篇文章主要介紹了使用BeanUtils.copyProperties進(jìn)行對象之間的屬性賦值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、使用org.springframework.beans.BeanUtils.copyProperties方法進(jìn)行對象之間屬性的賦值,避免通過get、set方法一個(gè)一個(gè)屬性的賦值

/**
  * 對象屬性拷貝 <br>
  * 將源對象的屬性拷貝到目標(biāo)對象
  *
  * @param source 源對象
  * @param target 目標(biāo)對象
  */
 public static void copyProperties(Object source, Object target) {
  try {
   BeanUtils.copyProperties(source, target);
  } catch (BeansException e) {
   LOGGER.error("BeanUtil property copy failed :BeansException", e);
  } catch (Exception e) {
   LOGGER.error("BeanUtil property copy failed:Exception", e);
  }
 }

2、List集合之間的對象屬性賦值

/**
  * @param input 輸入集合
  * @param clzz 輸出集合類型
  * @param <E> 輸入集合類型
  * @param <T> 輸出集合類型
  * @return 返回集合
  */
 public static <E, T> List<T> convertList2List(List<E> input, Class<T> clzz) {
  List<T> output = Lists.newArrayList();
  if (CollectionUtils.isNotEmpty(input)) {
   for (E source : input) {
    T target = BeanUtils.instantiate(clzz);
    BeanUtil.copyProperties(source, target);
    output.add(target);
   }
  }
  return output;
 }

比如有兩個(gè)類,User和Employee,將存儲(chǔ)Employee對象的List賦給存儲(chǔ)User對象的List。

User類:

public class User {
 private String name;
 private Integer age;
 
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
 public Integer getAge() {
  return age;
 }
 
 public void setAge(Integer age) {
  this.age = age;
 }
 
 @Override
 public String toString() {
  return "User{" +
    "name='" + name + '\'' +
    ", age=" + age +
    '}';
 }
}

Employee類:

public class Employee {
 private String name;
 
 private Integer age;
 private String dept;
 
 public Employee(String name, Integer age, String dept) {
  this.name = name;
  this.age = age;
  this.dept = dept;
 }
 
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
 public Integer getAge() {
  return age;
 }
 
 public void setAge(Integer age) {
  this.age = age;
 }
 
 public String getDept() {
  return dept;
 }
 
 public void setDept(String dept) {
  this.dept = dept;
 }
 
 @Override
 public String toString() {
  return "Employee{" +
    "name='" + name + '\'' +
    ", age=" + age +
    ", dept='" + dept + '\'' +
    '}';
 }
}

測試類:

@RunWith(PowerMockRunner.class)
public class TestUtil
{
 @Test
 public void test(){
  Employee ee1=new Employee("A",21,"it");
  Employee ee2=new Employee("B",23,"account");
  User user=new User();
  BeanUtil.copyProperties(ee1, user);
  System.out.println(user);
  System.out.println("-------------分割線--------------");
  List<User> output=new ArrayList<>();
  List<Employee> source= Arrays.asList(ee1,ee2);
  output=BeanUtil.convertList2List(source,User.class);
  for (User str:output) {
   System.out.println(str);
  }
 }
}

到此這篇關(guān)于使用BeanUtils.copyProperties進(jìn)行對象之間的屬性賦值的文章就介紹到這了,更多相關(guān)BeanUtils.copyProperties對象賦值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java ThreadLocal 線程安全問題解決方案

    Java ThreadLocal 線程安全問題解決方案

    這篇文章主要介紹了Java ThreadLocal 線程安全問題解決方案的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Spring MVC 攔截器實(shí)現(xiàn)代碼

    Spring MVC 攔截器實(shí)現(xiàn)代碼

    本篇文章主要介紹了Spring MVC 攔截器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • SpringBoot如何取消內(nèi)置Tomcat啟動(dòng)并改用外接Tomcat

    SpringBoot如何取消內(nèi)置Tomcat啟動(dòng)并改用外接Tomcat

    這篇文章主要介紹了SpringBoot如何取消內(nèi)置Tomcat啟動(dòng)并改用外接Tomcat,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java數(shù)組隊(duì)列概念與用法實(shí)例分析

    Java數(shù)組隊(duì)列概念與用法實(shí)例分析

    這篇文章主要介紹了Java數(shù)組隊(duì)列概念與用法,結(jié)合實(shí)例形式分析了Java數(shù)組隊(duì)列相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • mybatis如何處理返回結(jié)果集

    mybatis如何處理返回結(jié)果集

    這篇文章主要介紹了mybatis如何處理返回結(jié)果集問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Springcloud Stream消息驅(qū)動(dòng)工具使用介紹

    Springcloud Stream消息驅(qū)動(dòng)工具使用介紹

    SpringCloud Stream由一個(gè)中間件中立的核組成,應(yīng)用通過SpringCloud Stream插入的input(相當(dāng)于消費(fèi)者consumer,它是從隊(duì)列中接收消息的)和output(相當(dāng)于生產(chǎn)者producer,它是發(fā)送消息到隊(duì)列中的)通道與外界交流
    2022-09-09
  • 解決IDEA刪除子模塊并重建后MAVEN無法識別的問題

    解決IDEA刪除子模塊并重建后MAVEN無法識別的問題

    這篇文章主要介紹了解決IDEA刪除子模塊并重建后MAVEN無法識別的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java synchronized線程交替運(yùn)行實(shí)現(xiàn)過程詳解

    Java synchronized線程交替運(yùn)行實(shí)現(xiàn)過程詳解

    這篇文章主要介紹了Java synchronized線程交替運(yùn)行實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 淺析Spring和MyBatis整合及逆向工程

    淺析Spring和MyBatis整合及逆向工程

    這篇文章主要介紹了Spring和MyBatis整合及逆向工程的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Java中IO的NIO通道解析

    Java中IO的NIO通道解析

    這篇文章主要介紹了Java中IO的NIO通道解析,NIO 提供了與傳統(tǒng) BIO 模型中的 Socket 和 ServerSocket 相對應(yīng)的 SocketChannel 和 ServerSocketChannel 兩種不同的套接字通道實(shí)現(xiàn),需要的朋友可以參考下
    2024-01-01

最新評論