国产乱人视频免费观看网站,九九精品视频在线观看,九九久re8在线精品视频,日韩久久精品五月综合

<menu id="zjelp"></menu>

    <th id="zjelp"><tbody id="zjelp"><form id="zjelp"></form></tbody></th>
    <small id="zjelp"><menuitem id="zjelp"></menuitem></small>
  • <small id="zjelp"></small>

    <address id="zjelp"></address>
    <address id="zjelp"></address>
    關(guān)于java內(nèi)部類-java開發(fā)java經(jīng)驗技巧

    關(guān)于java內(nèi)部類-java開發(fā)java經(jīng)驗技巧

    ID:32832472

    大?。?3.70 KB

    頁數(shù):4頁

    時間:2019-02-16

    關(guān)于java內(nèi)部類-java開發(fā)java經(jīng)驗技巧_第1頁
    關(guān)于java內(nèi)部類-java開發(fā)java經(jīng)驗技巧_第2頁
    關(guān)于java內(nèi)部類-java開發(fā)java經(jīng)驗技巧_第3頁
    關(guān)于java內(nèi)部類-java開發(fā)java經(jīng)驗技巧_第4頁
    資源描述:

    《關(guān)于java內(nèi)部類-java開發(fā)java經(jīng)驗技巧》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫

    1、關(guān)于Java內(nèi)部類-編程開發(fā)技術(shù)關(guān)于Java內(nèi)部類木文由ImportNew?陳秋林翻譯自javacodegeekso歡迎加入翻譯小組。轉(zhuǎn)載請見文末要求。J2V3中可以定義成員內(nèi)部類(在另一個類里面定義的類),局部內(nèi)部類(在語句塊屮定義的類)和匿名內(nèi)部類(沒冇名字的類):classOuter{Objectanonymous二newObject(){};//這是一個匿名類//匿名初始化{//這是一個Local類classLocal{}Local1=newLocal();}Outer(){//這是構(gòu)造函數(shù)中的Local類classLocal{}Local1=newL

    2、ocal();}voidmethod(){//這是方法中的Local類classLocal{}Local1=newLocal();}//這是一個成員類classInner{}Inneri二newInner();}Java語言規(guī)范將成員類,木地類和匿名類統(tǒng)稱為內(nèi)部類。實現(xiàn)“細(xì)節(jié)”Java語言規(guī)范和虛擬機規(guī)范并沒有告訴我們內(nèi)部類的實現(xiàn)細(xì)節(jié)。這里的一些文章闡明了一些細(xì)節(jié),比如Java編譯器如何生成合成方法,可以使這些成員類訪問(外部類的)私有成員,這在JVM中本來是是不允許的。很容易知道內(nèi)部類的另一個實現(xiàn)細(xì)節(jié):內(nèi)部類的構(gòu)造函數(shù)需耍額外的合成參數(shù)。內(nèi)部類構(gòu)造函數(shù)第一個

    3、合成參數(shù)就是普遍知道的內(nèi)部類的外圍實例(的引用),它存儲在this$O?的合成域小。?這是適用于三種內(nèi)部類:成員,本地和匿名。但鮮為人知的是,局部內(nèi)部類需要通過額外的合成構(gòu)造參數(shù)來獲取非常量變量,(獲取常量將被內(nèi)聯(lián),并不會產(chǎn)生額外的合成構(gòu)造函數(shù)參數(shù)):classOuter{voidmethod(){finalStringconstant二〃foo〃;finalStringnonConstant=,zfoo,z.toUpperCase();classLocal{/**syntheticfieldsandconstruetor:**Outerthis$0;Stri

    4、ngnonConstant;**Local(Outerthis$0,StringnonConstant){this.this$0二this$0;*this.nonConstant二nonConstant;}*/}Local1二newLocal();}好吧,但是我為什么要關(guān)心它?在大多數(shù)情況下,你并不關(guān)心內(nèi)部類的實現(xiàn)機制,除非好奇心使然。但是如果你在內(nèi)部類中使用了反射,這里有些東西你需要清楚,而且我并沒冇聽過或者在網(wǎng)上看過這類資料,所以我想很有必要列出清單幫助其他人弄清楚,因為通過Java反射的API,不同的編譯器會產(chǎn)生不同的結(jié)果?,F(xiàn)在的問題是,當(dāng)你使用Java

    5、反射來獲取對內(nèi)部類構(gòu)造一個java.lang,reflect.Constructor屮的實例會發(fā)生什么情況,尤其是使用那些允許你訪問參數(shù)類型(pre-generics:getParameterTypes()),泛型參數(shù)類型(post-gcncries:?gctGcncricParamctcrTypcs())和注釋(getParameterAnnotations())?答案是:這取決于不同的編譯器。假設(shè)有一個類:classOuter{classInner{Inner(){}Inner(Stringparam){}Inner(?DeprecatedIntegerp

    6、aram){}}它們會因為java編譯下面是這三個通過反射調(diào)用構(gòu)造函數(shù)得到的數(shù)組的長度,器的不同而不同。Outer.Inner.class>getDeclaredConstruetor()Outer.Inner.class.getDeclaredConstructor(Outer.Inner.class.getDeclaredConstructor(String,class)Integer,class)22122211gctParamctcrT^^pcs()?lengthgetGenericParameterTypes()?length?compiledwit

    7、hEclipsegetGenericParameterTypes()?length?compiledwithJavacgetParameterAnnotations()?length可以看到,getParamcterTypes()中始終包含“合成”參數(shù),但是在getGenericParameterTypes()屮,只有用Eclipse編譯時才包含“合成”參數(shù);而對于getParameterAnnotations(),除非你的構(gòu)造函數(shù)的參數(shù)使用了注釋,否則也一直包含了“合成”參數(shù)。通過這些信息,你可以了解到這三個方法產(chǎn)生的不同結(jié)果,但是到目前為止我還是沒有辦法確

    8、定一個參數(shù)是否是“合成”的,因為雖然你

    當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

    此文檔下載收益歸作者所有

    當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
    溫馨提示:
    1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
    2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
    3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
    4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。