應(yīng)用java反射機(jī)制打印一個(gè)對(duì)象_第1頁(yè)
應(yīng)用java反射機(jī)制打印一個(gè)對(duì)象_第2頁(yè)
應(yīng)用java反射機(jī)制打印一個(gè)對(duì)象_第3頁(yè)
應(yīng)用java反射機(jī)制打印一個(gè)對(duì)象_第4頁(yè)
應(yīng)用java反射機(jī)制打印一個(gè)對(duì)象_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、應(yīng)用 java 反射機(jī)制打印一個(gè)對(duì)象有時(shí)候我們需要在程序運(yùn)行的時(shí)候監(jiān)視一個(gè)對(duì)象的各個(gè)屬性的具體的值, 比如我就遇到 這樣的情況,老板要我把一個(gè) xml 文件中的數(shù)據(jù)注入到內(nèi)存中的一個(gè) java 對(duì)象中,程序?qū)?完后,調(diào)試時(shí)就想如果能把注入后的對(duì)象的所有屬性的值打印出來(lái), 那么就能很容易的找出 程序中存在的問題,這樣就很方便了,所以我就簡(jiǎn)單的寫了一個(gè)打印對(duì)象的方法。先看一下列子吧Xml 文件內(nèi)容:<? xml version="1.0"encoding ="UTF-8" ?>< predict_datacity_code = "

2、101010100"city_name =" 北京"date_time ="2012-11-01 08:00"pt ="2012-11-01 08:00"<detail date ="2012-11-01"<day >< weather info<wind direct</ day >< night >=" 晴" img ="0" temperature ="無(wú)持續(xù)風(fēng)向 " power =&q

3、uot;微風(fēng)"/>="15.0" />< weatherinfo<wind direct</ night >=" 晴" img ="0" temperature ="無(wú)持續(xù)風(fēng)向 " power ="微風(fēng)"/>="4.0" /></ detail >pt ="2012-11-01 08:00"<detail date ="2012-11-02"<day &g

4、t;< weather info<wind direct</ day >< night >=" 多云 " img ="1" temperature="無(wú)持續(xù)風(fēng)向 " power ="微風(fēng)"/>="13.0"/>< weatherinfo<wind direct </ night ></ detail >=" 小雨 " img ="7" temperature="無(wú)

5、持續(xù)風(fēng)向 " power ="微風(fēng)"/>="6.0"/>pt ="2012-11-01 08:00"<detail date ="2012-11-03"<day >< weather info<wind direct</ day >< night >=" 中雨 " img ="8" ="無(wú)持續(xù)風(fēng)向 " powertemperature=" 微風(fēng) " />=

6、"7.0"/>< weatherinfo<wind direct </ night ></ detail >=" 雨夾雪 " img ="6"=" 北風(fēng)" power ="45temperature級(jí)" />="0.0" /><detail date ="2012-11-04"pt ="2012-11-01 08:00"<day >< weatherinfo&

7、lt;wind direct</ day >< night >=" 陰"=" 北風(fēng)"img ="2" temperaturepower ="45 級(jí)" />="5.0"/>< weather info<wind direct</ night ></ detail >晴"北風(fēng) " power ="34 級(jí)" />img ="0" temperature=&quo

8、t;-3.0"/><detail date ="2012-11-05"pt ="2012-11-01 08:00"<day >< weatherinfo<wind direct</ day >< night >晴" =" 北風(fēng)"img ="0" temperaturepower ="34 級(jí)" />="7.0"/>< weather info<wind direct <

9、;/ night</ detail >< detail<day=" 晴"=" 無(wú)持續(xù)風(fēng)向date ="2012-11-06"<weather info<wind direct</ day >< night ><weather info<wind direct</ night ></ detail >img ="0" temperature" power =" 微風(fēng) " />="-4.0

10、"/>pt ="2012-11-01 08:00"=" 晴"=" 無(wú)持續(xù)風(fēng)向" power =" 微風(fēng)" />img ="0" temperature=" 晴" img ="0" temperature=" 無(wú)持續(xù)風(fēng)向" power =" 微風(fēng)" /><detail date ="2012-11-07"pt ="2012-11-01 08:00"

11、;="10.0"="-4.0"/>/><day ><weather info<wind direct</ day >< night >=" 晴" img ="0" temperature=" 無(wú)持續(xù)風(fēng)向" power =" 微風(fēng)" />="11.0"/><weather info<wind direct</ night ></ detail >=&q

12、uot; 晴" img ="0" temperature=" 無(wú)持續(xù)風(fēng)向" power =" 微風(fēng)" />="0.0"/></ predict_data對(duì)應(yīng)的 java 類:(是用反射機(jī)制自動(dòng)生成的, 等有時(shí)間我把生成 java 類的的代碼和注入的代碼都貼出來(lái), 本來(lái) 用 java 動(dòng)態(tài)編譯 + 反射機(jī)制 可以實(shí)現(xiàn)將 xml 文件直接生成一個(gè) java 對(duì)象的,但是我考慮到 在寫代碼的時(shí)候沒有智能提示很容易出錯(cuò),所以選擇自動(dòng)生成類,再創(chuàng)建對(duì)象,再注入值)publicStringdaten

13、ullpublic public public public StringStringDay classpt = null nodeTextday =DaynullnullpublicpublicStringWeathernodeTextweathernullnullpublicclass Weatherclass Predict_datapublicStringcity_code= nullpublicStringcity_name= nullpublicStringdate_time= nullpublicStringnodeText= nullpublicDetaildetail= nu

14、llpublicclassDetailpublicStringimg = null ;publicStringinfo = null ;publicStringtemperature = nullpublicStringnodeText = null ; public publicWind windclass WindnullpublicStringdirectpublicStringpower =publicStringnodeText publicNightnight =null ;publicclassNightnullnullnullpublicpublicString nodeTex

15、tWeather weathernullnullpublicclass Weatherpublic Stringimg = nullpublicStringinfo = null ;publicStringtemperature = nullpublicStringnodeText = null ; public publicWind windclass WindnullpublicStringdirectpublicStringpower =publicStringnodeTextnullnullnull打印結(jié)果city_code:101010100city_name: 北京date_tim

16、e:2012-11-01 08:00nodeText:nulldetaildetaildate:2012-11-01pt:2012-11-01 08:00nodeText:nulldaynodeText:null weatherimg:0 info: temperature:15.0nodeText:null winddirect:power:nodeText:null無(wú)持續(xù)風(fēng)向微風(fēng)nightnodeText:null weatherimg:0 info: temperature:4.0 nodeText:nullwinddirect:無(wú)持續(xù)風(fēng)向power:nodeText:null微風(fēng)det

17、aildate:2012-11-02pt:2012-11-01 08:00nodeText:nulldaynodeText:nullweatherimg:1info:多云temperature:13.0nodeText:nullwinddirect:無(wú)持續(xù)風(fēng)向power:微風(fēng)nodeText:nullnightnodeText:nullweatherimg:7info:小雨temperature:6.0nodeText:nullwinddirect:無(wú)持續(xù)風(fēng)向power:nodeText:null微風(fēng)detaildate:2012-11-03pt:2012-11-01 08:00nodeTex

18、t:nulldaynodeText:nullweatherimg:8info:中雨temperature:7.0nodeText:nullwinddirect:無(wú)持續(xù)風(fēng)向power:微風(fēng)nodeText:nullnightnodeText:nullweatherimg:6info:雨夾雪temperature:0.0nodeText:nullwind北風(fēng)direct:power:45nodeText:null detaildate:2012-11-04pt:2012-11-01 08:00nodeText:nulldaynodeText:nullweatherimg:2info:tempera

19、ture:5.0nodeText:nullwinddirect:power:45nodeText:null北風(fēng)nightnodeText:nullweatherimg:0info:temperature:-3.0nodeText:nullwinddirect:北風(fēng)detailpower:34nodeText:nulldate:2012-11-05pt:2012-11-01 08:00nodeText:nulldaynodeText:nullweatherimg:0info:temperature:7.0nodeText:nullwinddirect:北風(fēng)power:34 nodeText:nu

20、llnightnodeText:nullweatherimg:0info:temperature:-4.0nodeText:nullwinddirect:無(wú)持續(xù)風(fēng)向power:nodeText:null微風(fēng)detaildate:2012-11-06pt:2012-11-01 08:00nodeText:nulldaynodeText:nullweatherimg:0info:temperature:10.0nodeText:nullwinddirect:微風(fēng)無(wú)持續(xù)風(fēng)向power:nodeText:null nightnodeText:nullweatherimg:0info:temperatu

21、re:-4.0nodeText:nullwinddirect:無(wú)持續(xù)風(fēng)向power:nodeText:null微風(fēng)detaildate:2012-11-07pt:2012-11-01 08:00nodeText:nulldaynodeText:nullweatherimg:0info:temperature:11.0nodeText:null winddirect:power:nodeText:null無(wú)持續(xù)風(fēng)向微風(fēng) nightnodeText:nullweatherimg:0 info:temperature:0.0nodeText:nullwinddirect:power:nodeText

22、:null無(wú)持續(xù)風(fēng)向微風(fēng)下面我把代碼分享給大家:public(就兩個(gè)方法,很簡(jiǎn)單吧! )static String objectToString(Object o)StringBuffer s=new StringBuffer();s.append( printObject"n" );(o,s, " " );s.append(return"n" ); s.toString(); privatestatic voidp ri ntObject(Object o,Stri ngBuffer s,Stri ng bla nk)Class clazz=o.getClass();Field fields=clazz.getDeclaredFields(); for(int i=O;i<fields.len gth ;i+)try String value=fieldsi.get(o).toStri n

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論