最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)不同的類的屬性之間相互賦值

 更新時(shí)間:2019年03月27日 09:41:13   作者:徐劉根  
今天小編就為大家分享一篇關(guān)于Java實(shí)現(xiàn)不同的類的屬性之間相互賦值,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

在開(kāi)發(fā)的時(shí)候可能會(huì)出現(xiàn)將一個(gè)類的屬性值,復(fù)制給另外一個(gè)類的屬性值,這在讀寫數(shù)據(jù)庫(kù)的時(shí)候,可能會(huì)經(jīng)常的遇到 ,特別是對(duì)于一個(gè)有繼承關(guān)系的類的時(shí)候,我們需要重寫很多多余的代碼,下面有一種簡(jiǎn)單的方法實(shí)現(xiàn)該功能

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

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、下邊的就是實(shí)現(xiàn)該功能的方法體:

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())) {
            // 調(diào)用source的getter方法和dest的setter方法
            destProperty[j].getWriteMethod().invoke(dest, sourceProperty[i].getReadMethod().invoke(source));
            break;
          }
        }
      }
    } catch (Exception e) {
      throw new Exception("屬性復(fù)制失敗:" + e.getMessage());
    }
  }

3、下邊進(jìn)行測(cè)試:

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、測(cè)試結(jié)果如下:

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Java8 Lambda和Invokedynamic詳情

    Java8 Lambda和Invokedynamic詳情

    關(guān)于Java8的Lambda 我們可以將lambda表達(dá)式與新的Streams API結(jié)合起來(lái),以表達(dá)豐富的數(shù)據(jù)處理查詢,下面文章小編就列舉簡(jiǎn)單的例子給大家介說(shuō)吧,感興趣的小伙伴可以參考下面文章的具體內(nèi)容奧
    2021-09-09
  • Linux系統(tǒng)下搭建Java開(kāi)發(fā)環(huán)境

    Linux系統(tǒng)下搭建Java開(kāi)發(fā)環(huán)境

    本文主要是記錄了如何在Linux環(huán)境下一步步安裝JAVA JDK環(huán)境,非常簡(jiǎn)單實(shí)用,有需要的朋友可以參考下
    2014-10-10
  • Java8 Comparator: 列表排序的深入講解

    Java8 Comparator: 列表排序的深入講解

    這篇文章主要給大家介紹了關(guān)于Java 8 Comparator: 列表排序的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java8具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Java設(shè)置Map過(guò)期時(shí)間的的幾種方法舉例詳解

    Java設(shè)置Map過(guò)期時(shí)間的的幾種方法舉例詳解

    本文詳細(xì)介紹了Java中使用輕量級(jí)緩存組件ExpiringMap以及Guava的LoadingCache緩存機(jī)制,ExpiringMap提供了Map自動(dòng)過(guò)期、監(jiān)聽(tīng)事件等功能,而LoadingCache提供了緩存回收、數(shù)據(jù)加載等高級(jí)功能,兩者為Java項(xiàng)目提供了有效的數(shù)據(jù)管理和緩存解決方案,需要的朋友可以參考下
    2024-10-10
  • java-SSH2實(shí)現(xiàn)數(shù)據(jù)庫(kù)和界面的分頁(yè)

    java-SSH2實(shí)現(xiàn)數(shù)據(jù)庫(kù)和界面的分頁(yè)

    本文主要是介紹SSH2實(shí)現(xiàn)數(shù)據(jù)庫(kù)和界面的分頁(yè)的代碼,分頁(yè)在web應(yīng)用中是經(jīng)常要做的事情,實(shí)用性比較大,有需要的朋友可以來(lái)了解一下。
    2016-10-10
  • 利用@Value注解為bean的屬性賦值方法總結(jié)

    利用@Value注解為bean的屬性賦值方法總結(jié)

    這篇文章主要介紹了利用@Value注解為bean的屬性賦值方法總結(jié),文中有詳細(xì)的代碼示例,對(duì)學(xué)習(xí)@Value注解有一定的參考價(jià)值,需要的朋友可以參考下
    2023-05-05
  • solr在java中的使用實(shí)例代碼

    solr在java中的使用實(shí)例代碼

    本篇文章主要介紹了solr在java中的使用實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Java AES加密和解密教程

    Java AES加密和解密教程

    這篇文章主要介紹了Java AES加密和解密的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-12-12
  • Java導(dǎo)出Excel通用工具類實(shí)例代碼

    Java導(dǎo)出Excel通用工具類實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于Java導(dǎo)出Excel通用工具類的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java中的RASP機(jī)制實(shí)現(xiàn)詳解

    Java中的RASP機(jī)制實(shí)現(xiàn)詳解

    這篇文章主要介紹了Java中的RASP實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

舒城县| 广州市| 榕江县| 漳州市| 辉县市| 新乡市| 宝鸡市| 绍兴县| 图们市| 上思县| 潍坊市| 白城市| 比如县| 汉阴县| 南部县| 灌云县| 顺义区| 乃东县| 洪泽县| 平昌县| 三江| 合川市| 徐水县| 水城县| 平定县| 东安县| 黄陵县| 安达市| 桂阳县| 遂宁市| 南木林县| 理塘县| 馆陶县| 河曲县| 潮安县| 大渡口区| 黑河市| 鹿邑县| 鲁山县| 吉水县| 澄江县|