<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)論排行榜

    主站蜘蛛池模板: 久久亚洲高清综合| 破了亲妺妺的处免费视频国产| 亚洲熟妇无码八AV在线播放| 日韩在线视频播放免费视频完整版| 免费a级毛片永久免费| 精品亚洲av无码一区二区柚蜜| 四虎影视www四虎免费| 国产精品亚洲专区在线播放| 免费一级成人毛片| 人与动性xxxxx免费| 亚洲精品夜夜夜妓女网| 国产成人久久AV免费| 亚洲精品456在线播放| 亚洲免费一级视频| 亚洲熟妇无码av另类vr影视| 免费观看午夜在线欧差毛片| 国产精品成人啪精品视频免费| 亚洲AV无码成人精品区在线观看| 又大又硬又爽又粗又快的视频免费| 亚洲乱码一二三四区国产| 日本特黄a级高清免费大片| 免费的黄网站男人的天堂| 亚洲AV色香蕉一区二区| 无码国产精品一区二区免费式影视 | 一区二区三区免费视频播放器 | 亚洲精品乱码久久久久久久久久久久| 国产免费区在线观看十分钟| 亚洲天堂在线播放| 毛片a级毛片免费播放下载| 特级毛片A级毛片100免费播放| 久久精品国产亚洲AV麻豆王友容 | 国产精品69白浆在线观看免费| 苍井空亚洲精品AA片在线播放| 国产午夜亚洲精品午夜鲁丝片| 91精品免费不卡在线观看| 337P日本欧洲亚洲大胆精品| 亚洲大成色www永久网站| 日韩视频免费一区二区三区| 中国一级特黄高清免费的大片中国一级黄色片 | 77777午夜亚洲| 亚洲熟女一区二区三区|