<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jialisoftw

    JAVA克隆對(duì)象,包括父類屬性,無需實(shí)現(xiàn)序列化接口

    最近做一個(gè)東西,需要拷貝一個(gè)對(duì)象,而且父類屬性也需要拷貝。.很多人可能會(huì)說直接引用待拷貝的對(duì)象就可以了。但是這個(gè)方法支持了使用子類引用指象父類引用。以下是代碼:/**

     

    Java代碼:  
    1. /** 將sourceObj的屬性拷貝到targetObj 
    2.      * @param sourceObj 
    3.      * @param targetObj 
    4.      * @param clazz 從哪一個(gè)類開始(比如sourceObj對(duì)象層級(jí)為:Object->User->ChineseUser->ChineseMan->ChineseChongQingMan) 
    5.      * 如果需要從ChineseUser開始復(fù)制,clazz就指定為ChineseUser.class 
    6.      */  
    7.     public static void cpoyObjAttr(Object sourceObj,Object targetObj, Class<?> clazz)throws Exception{  
    8.         if(sourceObj==null || targetObj==null){  
    9.             throw new Exception("源對(duì)象和目標(biāo)對(duì)象不能為null");  
    10.         }  
    11.         Field[] fields=clazz.getDeclaredFields();  
    12.         for(int i = 0; i < fields.length; i++){  
    13.              fields[i].setAccessible(true);  
    14.              Object sourceValue=fields[i].get(sourceObj);  
    15.              fields[i].set(targetObj,sourceValue );  
    16.         }  
    17.         if(clazz.getSuperclass()==Object.class){  
    18.             return;  
    19.         }  
    20.         cpoyObjAttr(sourceObj,targetObj,clazz.getSuperclass());  
    21.            
    22.     }  
     以下是單元測(cè)試:
    Java代碼:  
    1. @Test  
    2. public void cpoyObjAttrTtest(){  
    3.     ChineseMan chineseMan=new ChineseMan();  
    4.     chineseMan.setUserName("程序員");  
    5.     chineseMan.setCat(new Cat("tom"));  
    6.        
    7.     try {  
    8.         ChineseManExtend chineseManExtend=new ChineseManExtend();  
    9.         ObjectTool.cpoyObjAttr(chineseMan, chineseManExtend, chineseMan.getClass());  
    10.         System.out.println(chineseManExtend.getUserName());  
    11.         System.out.println(chineseManExtend.getCat().getCatName());  
    12.   
    13.     } catch (Exception e) {  
    14.         // TODO Auto-generated catch block  
    15.         e.printStackTrace();  
    16.     }  
    17. }  
    18. 原文參考站長(zhǎng)網(wǎng)http://www.software8.co/wzjs/java/2495.html  如需轉(zhuǎn)載請(qǐng)注明

    posted on 2013-01-09 09:28 飛豬一號(hào) 閱讀(1739) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     

    導(dǎo)航

    <2013年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統(tǒng)計(jì)

    常用鏈接

    留言簿

    隨筆檔案

    友情鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 99久久精品免费视频| 日韩a级毛片免费观看| 亚洲妇女熟BBW| 亚洲av成人一区二区三区在线观看 | 亚洲乱码一区二区三区国产精品| 国产成人精品免费视频大全五级| 国产特黄特色的大片观看免费视频| 亚洲综合精品一二三区在线| 免费无遮挡无码视频网站| 两性色午夜视频免费播放| 伊人久久亚洲综合影院首页| 中文字幕亚洲综合久久菠萝蜜| 国产va精品免费观看| 国产久爱免费精品视频 | 亚洲自偷自拍另类图片二区| 免费a级毛片视频| 91视频免费网址| 九九免费精品视频在这里| 亚洲图片校园春色| 久久精品国产亚洲7777| 大陆一级毛片免费视频观看i| 美女网站在线观看视频免费的| 亚洲xxxx18| 久久久久亚洲AV成人无码网站 | 久草免费在线观看视频| 一级看片免费视频囗交| 久久国产亚洲精品| 亚洲人成网站在线播放影院在线 | 国产zzjjzzjj视频全免费| 2021在线永久免费视频| 羞羞视频免费网站日本| 亚洲人成人77777网站不卡| 亚洲日本一区二区三区在线| 日本黄页网站免费| 三年片在线观看免费观看高清电影| 丝袜捆绑调教视频免费区| 深夜福利在线免费观看| 亚洲欧洲AV无码专区| 亚洲国产成+人+综合| 久久精品国产亚洲AV果冻传媒| 亚洲日韩人妻第一页|