新聞中心
怎么在Java JDK11中利用嵌套實(shí)現(xiàn)訪問(wèn)控制?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)同德,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18980820575
Java(和其他語(yǔ)言)通過(guò)內(nèi)部類(lèi)支持嵌套類(lèi)。要使其正常工作,需要編譯器執(zhí)行一些技巧。這是一個(gè)例子:
public class Outer { private int outerInt; class Inner { public void printOuterInt() { System.out.println("Outer int = " + outerInt); } } }
在執(zhí)行編譯之前,編譯器會(huì)修改它以創(chuàng)建類(lèi)似的東西:
public class Outer { private int outerInt; public int access$000() { return outerInt; } } class Inner$Outer { Outer outer; public void printOuterInt() { System.out.println("Outer int = " + outer.access$000()); } }
雖然從邏輯上講,內(nèi)部類(lèi)是與外部類(lèi)相同的代碼實(shí)體的一部分,但它被編譯為一個(gè)單獨(dú)的類(lèi)。因此,它需要編譯器創(chuàng)建合成橋接方法,以提供對(duì)外部類(lèi)的私有字段的訪問(wèn)。
這個(gè)JEP引入了巢的概念,其中同一巢的兩個(gè)成員(我們的例子中的外部和內(nèi)部)是同窩。為類(lèi)文件格式NestHost和NestMembers定義了兩個(gè)新屬性。這些更改對(duì)于支持嵌套類(lèi)并編譯為字節(jié)碼的其他語(yǔ)言非常有用。
此功能為java.lang.Class引入了三個(gè)新方法:
Class getNestHost()
Class[] getNestMembers()
boolean isNestmateOf(Class)
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
文章標(biāo)題:怎么在JavaJDK11中利用嵌套實(shí)現(xiàn)訪問(wèn)控制
鏈接分享:http://www.dlmjj.cn/article/jhhdds.html