Thinking in sky

          --老賀的BLOG

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            21 隨筆 :: 0 文章 :: 35 評論 :: 0 Trackbacks
                  系統中需要一個方法,方法參數為任意對象,要求找到該對象的所有屬性名和屬性值,當然必須要用到反射了。查了會API,發現JAVA反射功能果然強大,一下就找到了需要的函數。
          1//roleVO為RoleVO類的對象, 返回該類的所有屬性的數組
          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類根據屬性類型的不同對應不同的方法,如getFloat(),getLong(),參數必須為該類的對象。如果不指定類型也可以:get(),屬性是什么類型它就返回什么類型,其它更詳細的就要查看API文檔了。
          posted on 2007-05-15 13:28 老賀 閱讀(504) 評論(1)  編輯  收藏 所屬分類: JAVA基礎

          評論

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

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


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


          網站導航:
           
          主站蜘蛛池模板: 隆德县| 齐齐哈尔市| 铜山县| 天门市| 绥滨县| 沂水县| 达孜县| 富蕴县| 龙胜| 科尔| 江口县| 兖州市| 广安市| 瓦房店市| 运城市| 弥勒县| 连江县| 张掖市| 芜湖市| 融水| 平昌县| 诸暨市| 津市市| 海兴县| 枝江市| 万宁市| 鞍山市| 桦川县| 胶州市| 长沙县| 富宁县| 吴堡县| 德昌县| 凤庆县| 永川市| 鹤峰县| 普兰店市| 固安县| 且末县| 会泽县| 宿州市|