BeanUtils.copyProperties的用法

小億
79
2024-01-02 15:43:27
欄目: 編程語言

BeanUtils.copyProperties()是Apache Commons BeanUtils庫中的一個(gè)方法,用于將一個(gè)Java對(duì)象的屬性值復(fù)制到另一個(gè)Java對(duì)象中相應(yīng)的屬性中。

方法簽名:

public static void copyProperties(Object dest, Object orig)

參數(shù)說明:

  • dest:目標(biāo)對(duì)象,屬性值將被復(fù)制到該對(duì)象中。
  • orig:源對(duì)象,屬性值將從該對(duì)象中復(fù)制。

注意事項(xiàng):

  • 該方法會(huì)自動(dòng)根據(jù)屬性名和類型將源對(duì)象的屬性值復(fù)制到目標(biāo)對(duì)象中相應(yīng)的屬性中。
  • 如果兩個(gè)對(duì)象的屬性名和類型完全匹配,屬性值將直接復(fù)制;如果屬性名不匹配,該方法會(huì)嘗試進(jìn)行類型轉(zhuǎn)換,如果轉(zhuǎn)換失敗將拋出異常。
  • 對(duì)于嵌套的對(duì)象屬性,該方法會(huì)遞歸地進(jìn)行屬性復(fù)制。

示例代碼:

public class User {
    private String name;
    private int age;
    // getter和setter方法省略
}

public class UserDTO {
    private String name;
    private int age;
    // getter和setter方法省略
}

public static void main(String[] args) {
    User user = new User();
    user.setName("John Doe");
    user.setAge(30);

    UserDTO userDTO = new UserDTO();
    BeanUtils.copyProperties(userDTO, user);

    System.out.println(userDTO.getName()); // 輸出:John Doe
    System.out.println(userDTO.getAge());  // 輸出:30
}

上面的例子演示了如何將User對(duì)象的屬性值復(fù)制到UserDTO對(duì)象中。通過調(diào)用BeanUtils.copyProperties()方法,可以方便地完成屬性復(fù)制操作。

0