一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - Java實現不同的類的屬性之間相互賦值

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

2021-07-26 10:49徐劉根 Java教程

今天小編就為大家分享一篇關于Java實現不同的類的屬性之間相互賦值,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

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

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

?
1
2
3
4
5
6
7
8
public class classtestcopy2 {
  private int id;
  private string name;
  private string password;
  private string sex;
  private string age;
  //get和set方法
}
?
1
2
3
4
5
6
public class classtestcopy1 {
  private int id;
  private string name;
  private string password;
  //get和set方法
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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、下邊進行測試:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;

總結

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

原文鏈接:https://blog.csdn.net/xlgen157387/article/details/47126279

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性xxxxbbbbxxxx中国 | 教练你好大轻点漫 | 色多多影院 | 欧美精品色精品一区二区三区 | 青草青青在线视频观看 | 四虎影院在线 | 色四虎 | sao虎影院桃红视频在线观看 | 日韩精品一二三区 | 午夜五月天 | 91aaa在线观看 | 国产日韩一区二区 | 百合文高h | 精品卡1卡2卡三卡免费视频 | 亚洲精品国产国语 | 欧美一区二区三区四区在线观看 | 无码国产成人午夜在线观看不卡 | 67194久久| 久久久久久88色偷偷 | 91天堂在线视频 | 亚洲国产欧美另类va在线观看 | xxx黑人又大粗又长 xxxx性欧美极品另类 | 亚洲精品tv久久久久久久久久 | 国产欧美久久一区二区 | 美女露全身永久免费网站 | 国产精品嫩草影院一二三区入口 | 国产亚洲视频网站 | 美女福利视频一区二区 | 国产一区二区在线观看美女 | 日韩精品成人免费观看 | 美女下面揉出水免费视频 | 久久受www免费人成_看片中文 | 91看片淫黄大片.在线天堂 | 牛牛在线观看 | 婚前试爱全集免费观看 | 国产日韩欧美在线观看不卡 | 亚洲免费网站在线观看 | 四虎精品成人免费影视 | 亚州日韩精品AV片无码中文 | 国产成人lu在线视频 | 国产一卡2卡3卡四卡高清 |