亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java實現不同的類的屬性之間相互賦值

發布時間:2020-09-09 18:31:47 來源:腳本之家 閱讀:176 作者:徐劉根 欄目:編程語言

在開發的時候可能會出現將一個類的屬性值,復制給另外一個類的屬性值,這在讀寫數據庫的時候,可能會經常的遇到 ,特別是對于一個有繼承關系的類的時候,我們需要重寫很多多余的代碼,下面有一種簡單的方法實現該功能

1、首先有兩個類,兩個類之間有相同的屬性名和類型,也有不同的屬性名很類型:

public class ClassTestCopy2 {
  private int id;
  private String name;
  private String password;
  private String sex;
  private String age;
  //get和set方法
}
public class ClassTestCopy1 {
  private int id;
  private String name;
  private String password;
  //get和set方法
}

2、下邊的就是實現該功能的方法體:

public static void Copy(Object source, Object dest) throws Exception {
    // 獲取屬性
    BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass(), java.lang.Object.class);
    PropertyDescriptor[] sourceProperty = sourceBean.getPropertyDescriptors();
    BeanInfo destBean = Introspector.getBeanInfo(dest.getClass(), java.lang.Object.class);
    PropertyDescriptor[] destProperty = destBean.getPropertyDescriptors();
    try {
      for (int i = 0; i < sourceProperty.length; i++) {
        for (int j = 0; j < destProperty.length; j++) {
          if (sourceProperty[i].getName().equals(destProperty[j].getName())) {
            // 調用source的getter方法和dest的setter方法
            destProperty[j].getWriteMethod().invoke(dest, sourceProperty[i].getReadMethod().invoke(source));
            break;
          }
        }
      }
    } catch (Exception e) {
      throw new Exception("屬性復制失敗:" + e.getMessage());
    }
  }

3、下邊進行測試:

public static void main(String[] args) {
    ClassTestCopy1 c1 = new ClassTestCopy1(1205030213, "name:xuliugen","password:123456");
    ClassTestCopy2 c2 = new ClassTestCopy2();
    try {
      CopyBeanParamsTest.Copy(c1, c2);
      System.out.println("-------------c1----------------");
      System.out.println(c2.getId());
      System.out.println(c2.getName());
      System.out.println(c2.getPassword());
      System.out.println(c2.getSex());
      System.out.println(c2.getAge());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

4、測試結果如下:

Java實現不同的類的屬性之間相互賦值

可知具有相同屬性名和類型的屬性被賦值,剩下的沒有被匹配到的結果則為NUll;

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰都县| 腾冲县| 武穴市| 孝昌县| 固始县| 哈巴河县| 瓮安县| 固镇县| 三都| 凌源市| 永川市| 卓尼县| 涡阳县| 阳朔县| 大邑县| 隆子县| 榕江县| 万山特区| 哈密市| 涿州市| 房山区| 侯马市| 河西区| 邮箱| 靖边县| 弥勒县| 永州市| 泉州市| 新营市| 马山县| 扬中市| 区。| 治县。| 东光县| 隆德县| 盐城市| 楚雄市| 汾阳市| 登封市| 德江县| 麟游县|