亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java中利用Reflection API優化代碼

2019-11-18 15:41:43
字體:
來源:轉載
供稿:網友

  摘要

  開發者通過各種各樣的方法來嘗試避免單調冗余的編程。一些編程的規則例如繼續、多態或者設計模型可以幫助開發者避免產生多余的代碼。不過由于軟件開發方面存在著不確定性,因此這些規則并不能消除代碼維護和重新編寫的需要。
在很多時候維護都是不可避免的,只有不能運作的軟件才是從不需要維護的。不過,這篇文章介紹了你可以使用java的Reflection API的功能來減少單調的代碼編寫,并可以使用活動的代碼產生來克服reflection的限制。

  數據配置(由外部的源頭得到數據并且將它裝載到一個Java對象中)可以利用reflection的好處來創建一個可重用的方案。問題是很簡單的:將數據由一個文件裝入到一個對象的字段中。現在假設用作數據的目標Java類每星期改變一次?有一個很直接的解決方法,不過你必須不斷地維護載入的過程來反映任何的改變。在更復雜的環境下,同樣的問題可能會令系統崩潰掉。對于一個處理過運用xml的大型系統的人來說,他就會碰到過這個問題。要編寫一個載入的過程通常是非常單調乏味的,由于數據源或者目標Java類的改變,你需要經常更新和重新編寫代碼。在這里我要介紹另一個解決方案,那就是使用映射,它通常使用更少的編碼,并且可以在目標Java類發生改變后更新自己。

  最初,我想介紹一個使用Reflection在運行期間配置數據的方案。在開始的時候,一個動態、基于映射的程序要比一個簡單的方法更有吸引力多了。隨后,我要揭示出運行時Reflection的復雜性和冒險性。這篇文章將介紹由運行時的Reflection到活動的代碼產生。

  由簡單到復雜

  我的第一個方案使用一個載入類將數據從一個文件載入到對象中。我的源代碼含有對StringTokenizer對象下一節點方法的多次調用。在修改多次后,我的編碼邏輯變得非常的直接、系統化。該類構造了專用的代碼。在這個初始方案中,我只需要使用3個基本的對象:

  1、Strings

  2、Objects

  3、Arrays of objects

  你可以影射類的對象來產生代碼塊,如下表所示:

  被影射來產生代碼塊的對象

Field typeCode blockStringfileIterator.nextString(); Object[]Vector collector = new Vector(); while(fileIterator.hasMoreDataForArray()){ Object data = initializeObject(fileIterator)collector.add(data); } Object[] objArray = new Object[collector.size()]; collector.copyInto(objArray); ObjectinitializeObject(fileIterator);                 **************表一**************

  我已經使用這個方案作了幾次編碼,因此我在寫代碼之前我已經知道該方案和代碼的結構。難點在于該類是變化的。類的名字、成份和結構在任何時候都可能發生變化,而任何的改變你都要重新編寫代碼。雖然會發生這些變化,但是結構和下載的流程仍然是一樣的;在寫代碼前,我仍然知道代碼的結構和成份。我需要一個方法,來將頭腦中的編碼流程轉換為一個可重用的、自動的形式。由于我是一個有效率的編程者,我很快就厭倦了編寫幾乎一樣的代碼,這時我想到了映射。

  數據配置通常需要一個源到目的數據的影射。影射可以是一個圖解、DTD(document type definition,文檔類型定義),文件格式等。在這個例子中,映射將一個對象的類定義解釋為我們要映射的流程。映射可以在運行時復制代碼的功能。在需要重寫代碼時,我將載入的過程用映射來代替,它所需要的時間和重寫是一樣的。

  載入的工程可以概括為以下幾步:

  1、解釋:一個影射決定你在構造一個對象時需要些什么

  2、請求數據:要滿足構造的需要,要進行一個調用來得到數據

  3、拖:數據由源中得到。

  4、推:數據被填充入一個對象的新實例

  5、假如必要的話,重復步驟1

  你需要以下的類來滿足以上的步驟:

 ?。當祿悾―ata classes):由ASCII文件中的數據實例化。類定義提供數據的影射。數據類必須滿足以下的條件:

  .它們必須包含有一個構造器來接收全部必需的參數,以使用一個有效的狀態來構造對象;

  .它們必須由對象構成,這些對象是reflective過程知道如何處理的

 ?。畬ο笱b載器(Object loader):使用reflection和數據類作為一個影射來載入數據。產生數據請求。

 ?。d入治理器(Load manager):作為對象裝載器和數據源的中介層,將對數據的請求轉換為一個數據指定的調用。這可以令對象載入器做到與數據源無關。通過它的接口和一個可載入的類對象通信。

 ?。當祿h接口(Data iterator interface):載入治理器和載入類對象使用這個接口來由數據源中得到數據。

  一旦你創建了支持的類,你就可以使用以下的聲明來創建和影射一個對象:



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品第8页| 成人日韩在线电影| 亚洲国产成人久久综合| 96sao精品视频在线观看| 日韩欧美福利视频| 91久久久久久久久久| www.日韩av.com| 欧美亚洲午夜视频在线观看| 三级精品视频久久久久| 欧美国产极速在线| 国产日韩欧美视频在线| 亚州国产精品久久久| 国产裸体写真av一区二区| 亚洲国产精品推荐| 国产精品69精品一区二区三区| 日韩av网站在线| 国产精品福利观看| 久久视频国产精品免费视频在线| 国产成人一区二区三区| 国产高清视频一区三区| 国产精品嫩草影院一区二区| 亚洲精品中文字幕女同| xvideos亚洲人网站| 91热精品视频| 成人综合国产精品| 欧美亚洲伦理www| 欧美成年人视频网站| 欧美日韩亚洲91| 日韩欧美中文在线| 国产日韩在线看| 97超碰蝌蚪网人人做人人爽| 欧美日韩国产成人| 欧美疯狂性受xxxxx另类| 久久久久99精品久久久久| 国产精品高潮呻吟久久av黑人| 亚洲精品www久久久久久广东| 成人福利网站在线观看11| 日韩精品在线播放| 午夜免费在线观看精品视频| 日韩中文av在线| 26uuu日韩精品一区二区| 久久精品这里热有精品| 日韩福利伦理影院免费| 97av在线播放| 精品国产一区二区三区在线观看| 亚洲激情国产精品| 亚洲第一区中文字幕| 国产精品免费在线免费| 97av视频在线| 欧美猛男性生活免费| 国产精品视频xxxx| 日韩免费在线视频| 国产精品久久久久久av福利软件| 国产精品在线看| 亚洲欧美日韩国产中文专区| 91精品久久久久久久久久久久久| 狠狠操狠狠色综合网| 538国产精品一区二区在线| 久久久这里只有精品视频| 亚洲国产精品悠悠久久琪琪| 欧美精品久久久久久久免费观看| 日韩电影免费观看中文字幕| 亚洲aa在线观看| 欧美xxxx14xxxxx性爽| 亚洲在线视频福利| 精品少妇v888av| 91久久精品国产91久久| 欧美成人剧情片在线观看| 欧美日韩精品在线观看| 国产欧美最新羞羞视频在线观看| 成人午夜在线视频一区| 4388成人网| 992tv成人免费视频| 国产精品一区久久| 国产一区二区精品丝袜| 久久男人资源视频| 色爱av美腿丝袜综合粉嫩av| 久久好看免费视频| 久久亚洲国产精品成人av秋霞| 亚洲毛片在线免费观看| 国产精品永久在线| 国产v综合ⅴ日韩v欧美大片| 亚洲天堂一区二区三区| 久久久亚洲天堂| 久久精彩免费视频| 欧美日韩在线一区| 日韩欧美国产高清91| 亚洲人成电影在线| 91国内揄拍国内精品对白| 狠狠操狠狠色综合网| 亚洲女人天堂成人av在线| 欧美性生活大片免费观看网址| 国产伦精品一区二区三区精品视频| 欧美激情免费看| 欧美日韩亚洲视频一区| 国产精品久久久久久久久久ktv| 久久综合伊人77777蜜臀| 国产日产亚洲精品| 国产成人极品视频| 亲爱的老师9免费观看全集电视剧| 国产a∨精品一区二区三区不卡| 国产专区欧美专区| 亚洲国产精彩中文乱码av在线播放| 欧美多人乱p欧美4p久久| 久久久精品中文字幕| 亚洲国产古装精品网站| 91老司机在线| 亚洲美女精品成人在线视频| 国产97在线|日韩| 丝袜亚洲欧美日韩综合| 超在线视频97| xxx成人少妇69| 91在线免费观看网站| 久久中国妇女中文字幕| 北条麻妃一区二区三区中文字幕| 国产精品视频一区二区高潮| 欧美视频二区36p| 日韩电影第一页| 美女黄色丝袜一区| 国产精品91久久久久久| 亚洲天堂av高清| 精品国产乱码久久久久久虫虫漫画| 国产一区二区香蕉| 欧美成人精品不卡视频在线观看| 777777777亚洲妇女| 精品视频9999| 欧美午夜视频一区二区| 欧美极品少妇xxxxⅹ裸体艺术| 欧美电影免费播放| 欧美性感美女h网站在线观看免费| 亚洲香蕉伊综合在人在线视看| 亚洲第一级黄色片| 欧美激情手机在线视频| 51午夜精品视频| 91精品免费久久久久久久久| 国产精品高潮呻吟久久av野狼| 精品少妇一区二区30p| 亚洲最新中文字幕| 91精品国产综合久久香蕉| 亚洲午夜未满十八勿入免费观看全集| 91日本在线视频| 日韩中文字幕在线看| 亚洲视频自拍偷拍| 亚洲福利视频网站| 97精品欧美一区二区三区| 国产69精品99久久久久久宅男| 欧美性猛交xxxx乱大交极品| 成年无码av片在线| 成人国产精品一区二区| 日韩中文字幕网站| 夜夜嗨av色一区二区不卡| 欧美午夜丰满在线18影院| 亚洲欧美在线免费观看| 久久精品视频中文字幕| 日本成人激情视频| 91在线色戒在线| 久久中文字幕视频| 国产高清在线不卡| 91精品国产色综合久久不卡98口| 成人精品福利视频| 国产欧美日韩综合精品| 亚洲va欧美va国产综合久久| 黑人巨大精品欧美一区免费视频| 97碰碰碰免费色视频|