Thinking in sky

          --老賀的BLOG

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            21 隨筆 :: 0 文章 :: 35 評論 :: 0 Trackbacks
                  系統(tǒng)中需要一個方法,方法參數(shù)為任意對象,要求找到該對象的所有屬性名和屬性值,當然必須要用到反射了。查了會API,發(fā)現(xiàn)JAVA反射功能果然強大,一下就找到了需要的函數(shù)。
          1//roleVO為RoleVO類的對象, 返回該類的所有屬性的數(shù)組
          2Field[] fields =  roleVO.getClass().getFields();
          3
          4for(i=0; i<fields.length; i++){
          5    //得到 屬性名            
          6    String fieldName = fields[i].getName();
          7
          8       //得到roleVO對象中該屬性的值
          9    int value = fields[i].getInt(roleVO);    
          Field類根據(jù)屬性類型的不同對應不同的方法,如getFloat(),getLong(),參數(shù)必須為該類的對象。如果不指定類型也可以:get(),屬性是什么類型它就返回什么類型,其它更詳細的就要查看API文檔了。
          posted on 2007-05-15 13:28 老賀 閱讀(504) 評論(1)  編輯  收藏 所屬分類: JAVA基礎

          評論

          # re: 畢業(yè)設計筆記(3)--反射[未登錄] 2007-08-23 10:50 小賀
          Class的getFields()方法返回此Class 對象所表示的類或接口的所有public屬性。如果該 Class 表示一個類,則此方法返回該類及其所有超類的public屬性。
          如果該 Class 表示一個接口,則此方法返回該接口及其所有超接口的public屬性。
          private和protected的屬性是不能得到。

          畢業(yè)設計的系統(tǒng)里面,我為了獲得VO中屬性的name和value,把原本的private改成了public,這樣做肯定是有隱患的。SpringSide里也有這個需求,但是他新包裝了一個方法,可以強行讀取或設置對象變量值,忽略private,protected修飾符的限制。為什么我開始就沒想到呢?  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 金乡县| 徐闻县| 皋兰县| 樟树市| 云龙县| 宁乡县| 张掖市| 华池县| 黔江区| 微山县| 庄河市| 焉耆| 阜康市| 德庆县| 汝阳县| 山阴县| 宜宾县| 军事| 内丘县| 布拖县| 杭锦后旗| 唐河县| 和静县| 永吉县| 休宁县| 平阴县| 宁德市| 汉寿县| 兴安县| 防城港市| 泽州县| 墨玉县| 铜川市| 黑水县| 丹江口市| 驻马店市| 文水县| 平定县| 紫金县| 吴江市| 盐津县|