源碼筆記第1天基礎(chǔ)加強(qiáng)反射properties_第1頁
源碼筆記第1天基礎(chǔ)加強(qiáng)反射properties_第2頁
源碼筆記第1天基礎(chǔ)加強(qiáng)反射properties_第3頁
源碼筆記第1天基礎(chǔ)加強(qiáng)反射properties_第4頁
源碼筆記第1天基礎(chǔ)加強(qiáng)反射properties_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Junit單元測試JunitJUnitJavajavamain方法。Junit屬于第工具,一般情況下需要導(dǎo)入jar包,不過,多數(shù)Java開發(fā)環(huán)境已經(jīng)集成了JUnit作為單元測試工具。JunitJunitjavamain在測試類方法上添加注解@Test修飾的方法要求:publicvoid方法名(){…}test開頭,沒有@est1Junit…”publicclassJunitDemo_1{publicclassJunitDemo_1{publicvoidmyTest(){System.out.println("test");}publicvoidmyBefore(){}publicvoidmyAfter(){}測試}@est反classClass對象。Class對象解析將類的二進(jìn)制數(shù)據(jù)中的符號替換為直接JJava反射機(jī)制是在運(yùn)行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方j(luò)ava語言的反射機(jī)制。ClassClasspublicclassBean{privatepublicclassBean{privateStringid;privateString6ClassConstructorMethodFiledinstanceinvokeClass//1//1語法:類名Classclazz1=語法:變量Beanbean=newClassclazz2=//Classclazz3=添加構(gòu)造BeanpublicpublicBean(){}publicBean(Stringid,StringclassName)this.id=this.className=className;System.out.print("有參構(gòu)造:"+id);System.out.println(,className);}無參構(gòu)造publicvoidtestDefaultCons()throws//ClassbeanClass=//2Constructorconstructor=Objectbean=constructor.newInstance();}有參構(gòu)造publicvoidtestParamCons()throws//ClassbeanClass=//2Bean(StringidString =//3=/*}無參構(gòu)造,簡化版獲得實(shí)例publicvoidtestDefaultSimple()throws//ClassbeanClass=//2Objectbean=beanClass.newInstance();/*}擴(kuò)展:私有構(gòu)造(反射BeanprivateprivateBean(Stringid)this.id=System.out.println("有參構(gòu)造:}getConstructor()publicvoidtestPrivateCons()throwsClassbeanClass=//2Bean(StringidString//*getConstructor()將拋異常 *getDeclaredConstructor =//3Objectbean=/*}set、get方Bean類提供gettersetterpublicStringgetId(){publicStringgetId(){returnid;}publicvoidsetId(Stringid){System.out.println("setId方法執(zhí)行:id);this.id=id;}public方publicvoidtestMethod()throws//1Classclazz=//2,相當(dāng)于ObjectobjnewBean();Objectobj=clazz.newInstance();//3setId//3.1*格式:getMethod(方法名,形成列表MethodsetMethod=clazz.getMethod("setId",//3.2ObjectsetReturnObjsetMethod.invoke(obj我是參數(shù)System.System.out.println("set方法返回值: 3.1MethodgetMethod=3.2ObjectgetReturnObj=getMethod.invoke(obj);System.out.println("get方法返回值:getReturnObj);}擴(kuò)展:私有方法(反射privateprivateStringshow(){return"Bean["+id+"className}getMethod()publicvoidtestPrivateMethod()throws//1Classclazz=//2獲得構(gòu)造--兩個字符串形參--Bean(Stringid,StringclassName) //3 //3privateString//*getMethod(方法名,形成列表)將拋異常 *getDeclaredMethod(方法名,形成列表MethodshowMethod=4ObjectgetReturnObj=showMethod.invoke(bean);System.out.println("show方法返回值:getReturnObj);show方法返回值:Bean[ArrayListId}擴(kuò)展:main方法與執(zhí)Beanmainpublicpublicstaticvoidmain(String[]args)for(inti=0;i<args.length;i++){System.out.print(args[i]+",");}}mainpublicvoidtestMainMethod()throws//1Classclazz=//2mainpublicstaticvoidmain(String[args)MethodmainMethod=clazz.getMethod("main",String[].class); System.out.println("main方法返回值:aaa,}Bean類提供成員變量publicclassBean{privatepublicclassBean{privateStringid;privateStringpublicStringpublic字段的操publicvoidtestField()throws/*public*publicString//1Classclazz=//2,相當(dāng)于ObjectobjnewBean();Objectbean=clazz.newInstance();//3操作字段,進(jìn)行賦值,publicString//3.1*格式:getField(字段名FielddescriptionField=//3.2,//3.3ObjectfieldReturnObj=descriptionField.get(bean);}擴(kuò)展:私有字段(反射getField()publicvoidtestPrivateField()throws//Classclazz=//2,相當(dāng)于ObjectobjnewBean();Objectbean=clazz.newInstance();//3--//*getField()將拋異常 *getDeclaredFieldFieldclassNameField=//3.2classNameField.set(bean,"Bean的類名稱//3.3ObjectfieldReturnObj=classNameField.get(bean);/*}PropertiesPropertiesProperties可保存在流中或從流中加載。1、Map接口的子類,map23、它是一個可以持久化的屬性集。鍵值可以到集合中,也可以到持久化的設(shè)備(硬盤、U盤、光盤)上。鍵值的來源也可以是持久化的設(shè)備。4publicObjectsetProperty(Stringkey,Stringvalue)調(diào)用Map的方法putpublicSet<String>stringPropertyNames()publicStringgetProperty(Stringkey*PropertiespublicclassPropertiesDemo01publicstaticvoidmain(String[]args)Propertiesprop=new//prop.put(key,value); "," ", ", Set<String>keys=for(Stringkey:keys)//Stringvalue=prop.getProperty(key);System.out.println(key+"=="+value);}}}}將集合中內(nèi)容到文 需求:使用Properties集合,完成把集合內(nèi)容到IO流所對應(yīng)文件中的操publicpublicclassPropertiesDemo02publicstaticvoidmain(String[]args)throwsIOExceptionPropertiesprop=new "," ", ", FileWriterout=new 到流所對應(yīng)的文件prop.store(out,"save}}把指定流所對應(yīng)的文件中的數(shù)據(jù),出來,保存到Propertie集合pertiespublicpublicclassPropertiesDemo03publicstaticvoidmain(String[]args)throwsIOExceptionPropertiesprop=newFileInputStreamin=new//FileReaderin=new 到集合}}Beangettersetter方法,publicpublicclassBean2privateStringid;privateStringclassName;privatePropertiesprops=newUsergettersetterpublicpublicclassUserprivateStringid;privateStringusername;privateStringpwd;publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;} publicStringtoString()return"User[id="+id+",username="+username+",pwd="pwd+}propertiesUser中publicvoidtestDemo()throws1Propertiesprop=new2FileInputStreamin=new//3,把流所對應(yīng)文件中的數(shù) 到集合UseruserObj=newUser();System.out.println("封裝數(shù)據(jù)前:userObj);System.out.println("封裝數(shù)據(jù)后:結(jié)果封裝數(shù)據(jù)前:User[id=nullusername=null封裝數(shù)據(jù)后:User[id=u001username=jack}propertiesUser中publicvoidtestDemo2()throws1Propertiesprop=new2FileInputStreamin=new//3,把流所對應(yīng)文件中的數(shù) 到集合//UseruserObj=newClassclazz=Class.forName("com.itheima_00_Bean.User");ObjectuserObj=clazz.newInstance();System.out.println("封裝數(shù)據(jù)前:Set<String>keySet=for(Stringkey:keySet)Stringvalue=StringmethodName="set"+key.substring(0,1).toUpperCase()+Methodmethod=clazz.getMethod(methodName,String.class);method.invoke(userObj,value);}System.out.println("封裝數(shù)據(jù)后:封裝數(shù)據(jù)前:

溫馨提示

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

評論

0/150

提交評論