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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本免费一区二区三区a区 日本免费三片在线观看 | 免费国产白棉袜踩踏区域 | 四虎影视色费永久在线观看 | 99自拍视频在线观看 | 欧美精品一区二区三区免费观看 | 国产香蕉一区二区精品视频 | 国产精品1024永久免费视频 | 亚洲男人的天堂视频 | 欧美日韩精品一区二区三区高清视频 | 午夜视频网站 | 久久精品中文闷骚内射 | 人妖三级 | 婷婷综合缴情亚洲五月伊 | 91在线精品国产丝袜超清 | 国产亚洲女人久久久久久 | 激情图片 激情小说 | caoporen97免费公开视频 | 色综合精品 | 美女全身无遮挡 | 日本视频高清 | 九九精品热 | 国产色视频一区二区三区 | 日本高清视频网站www | 91九色丨porny丨制服 | 深夜激情网站 | 四虎影视永久在线精品免费 | 欧美日韩国产最新一区二区 | 亚洲国产视频一区 | 国产成人精品免费视频大全五级 | 久久中文字幕亚洲 | 日韩在线视频免费不卡一区 | 成 人 免费 小说在线观看 | 亚洲精品有码在线观看 | www四虎影院 | 欧美搞逼视频 | 五月天在线视频观看 | 九九精品国产 | 四虎在线免费 | 久久www免费人成_看片高清 | 91香蕉小视频 | 免费国产网站 |