国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java反射-模塊

gekylin / 2183人閱讀

摘要:模塊反射教程將解釋如何通過反射訪問類所屬的模塊。模塊的概念是添加的。模塊反射教程將通過下面的章節(jié)討論可以從模塊描述符中獲得的信息。這是示例代碼導(dǎo)出包可以通過反射,方法讀取模塊的包列表。模塊所使用的服務(wù)也被稱為模塊的服務(wù)依賴關(guān)系。

Java模塊反射教程將解釋如何通過反射訪問Java類所屬的模塊。
模塊的概念是Java 9Java Platform Module System添加的。一個(gè)Java模塊是一個(gè)Java包的集合。因此,每一個(gè)類都屬于一個(gè)包,且每一個(gè)包都屬于一個(gè)模塊。
一個(gè)Java模塊被java.base模塊的反射類java.lang.Module 代表。通過這個(gè)類可以和Java模塊系統(tǒng)交互,獲得給定模塊的信息或者修改一個(gè)模塊。本文將覆蓋通過反射類Module可以做的一些操作。

獲得模塊實(shí)例

可以通過Class實(shí)例獲得Module實(shí)例,像這樣:

Module myClassModule = MyClass.class.getModule();
是命名模塊嗎?

你可以通過調(diào)用Module isNamed()檢查一個(gè)Module是否代表一個(gè)給定名稱的模塊。這是示例代碼:

boolean isNamed = myClassModule.isNamed();
是公開模塊嗎?

你可以通過調(diào)用Module isOpen()方法檢查一個(gè)模塊是否是開放的, 這是示例代碼:

boolean isOpen = myClassModule.isOpen();
獲得模塊描述符

一旦你訪問了Module實(shí)例,你可以通過getDescriptor()方法訪問它的ModuleDescriptor。這是通過getDescriptor()訪問模塊的ModuleDescriptor的示例代碼:

ModuleDescriptor descriptor = myClassModule.getDescriptor();

可以從ModuleDescriptor獲得模塊的更多描述信息。Java模塊反射教程將通過下面的章節(jié)討論可以從模塊描述符中獲得的信息。

模塊名

你可以通過ModuleDescriptor name()方法獲得模塊名。這是示例代碼:

String moduleName = descriptor.name();
導(dǎo)出包

可以通過反射,ModuleDescriptor exports() 方法讀取模塊的包列表。示例代碼如下:

Set exports = descriptor.exports();
是自動配置模塊嗎?

你可以通過ModuleDescriptor isAutomatic() 方法檢查模塊是否自動配置模塊。示例代碼如下:

boolean isAutomatic = descriptor.isAutomatic();
是公開模塊嗎?

你可以通過ModuleDescriptor isOpen() 方法檢查模塊是否是開放的,示例代碼如下:

boolean isOpen = descriptor.isOpen();
模塊中的包

你可以通過反射獲得一個(gè)給定模塊的包列表。這是通過ModuleDescriptor packages() 方法實(shí)現(xiàn)的。示例代碼如下:

Set packages = descriptor.packages();
使用的服務(wù)

你也可以通過反射讀取一個(gè)Java模塊使用的服務(wù)。模塊所使用的服務(wù)也被稱為模塊的服務(wù)依賴關(guān)系。你可以通過ModuleDescriptor uses() 方法讀取模塊服務(wù)的依賴。示例代碼如下:

Set uses = descriptor.uses();

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71700.html

相關(guān)文章

  • Java9模塊化學(xué)習(xí)筆記二之模塊設(shè)計(jì)模式

    摘要:但是模塊化當(dāng)中,無法掃描只有模塊中可以使用有兩種解決方案定義一個(gè)專門的資源模塊,并使用提供的接口,實(shí)現(xiàn)它,并將這個(gè)實(shí)現(xiàn)注冊為服務(wù)。有兩種方式使用或包名,包名模塊名使用運(yùn)行時(shí)動態(tài)。 模塊設(shè)計(jì)的原則: 1、防止出現(xiàn)編譯時(shí)循環(huán)依賴(主要是編譯器不支持),但運(yùn)行時(shí)是允許循環(huán)依賴的,比如GUI應(yīng)用2、明確模塊的邊界 幾種模塊設(shè)計(jì): API模塊,聚合模塊(比如java.base) 可選依賴 兩種方...

    李文鵬 評論0 收藏0
  • Java基礎(chǔ)-模塊系統(tǒng)筆記(1)

    摘要:模塊系統(tǒng)的前身是項(xiàng)目。最初,該項(xiàng)目僅僅是為設(shè)計(jì)實(shí)現(xiàn)一個(gè)模塊系統(tǒng)。隨著項(xiàng)目的不斷深入,平臺對標(biāo)準(zhǔn)模塊系統(tǒng)的呼求也日益增長,批準(zhǔn)該項(xiàng)目升級為平臺的一部分,也能服務(wù)于和平臺的需求。自定義的配置,僅包含一組指定的模塊及其所需的模塊。 我的博客 轉(zhuǎn)載請注明原創(chuàng)出處。 序 從Java 9開始,在Java的世界里多了一個(gè)叫模塊(JSR376)的特性。模塊系統(tǒng)的前身是Jigsaw項(xiàng)目。最初,該項(xiàng)目僅...

    learning 評論0 收藏0
  • Reflection:Java反射機(jī)制的應(yīng)用場景

    近期在維護(hù)公司項(xiàng)目的時(shí)候遇到一個(gè)問題,因?yàn)閷?shí)體類中的 set 方法涉及到了業(yè)務(wù)邏輯,因此在給對象賦值的過程中不能夠使用 set 方法,為了實(shí)現(xiàn)功能,所以采用了反射的機(jī)制給對象屬性賦值,借此機(jī)會也了解了反射的一些具體用法和使用場景,分以下兩點(diǎn)對反射進(jìn)行分析: 反射的優(yōu)勢和劣勢 反射的應(yīng)用場景 反射的優(yōu)勢和劣勢 ??個(gè)人理解,反射機(jī)制實(shí)際上就是上帝模式,如果說方法的調(diào)用是 Java 正確的打開方式...

    浠ラ箍 評論0 收藏0
  • 在運(yùn)行期通過反射了解JVM內(nèi)部機(jī)制

    摘要:我們找到了許多有趣的工具和組件用來檢測狀態(tài)的各個(gè)方面,其中一個(gè)就是在運(yùn)行期通過反射了解內(nèi)部機(jī)制。由于包含多種的實(shí)現(xiàn),就是供具體實(shí)現(xiàn)比如必須繼承的抽象類。調(diào)試器框架是可擴(kuò)展的,這意味著可以通過繼承這個(gè)抽象類來使用另一個(gè)調(diào)試器。 在日常工作中,我們都習(xí)慣直接使用或者通過框架使用反射。在沒有反射相關(guān)硬編碼知識的情況下,這是Java和Scala編程中使用的類庫與我們的代碼之間進(jìn)行交互的一種主要...

    crossea 評論0 收藏0
  • 最最最常見的Java面試題總結(jié)——第二周

    摘要:與都繼承自類,在中也是使用字符數(shù)組保存字符串,,這兩種對象都是可變的。采用字節(jié)碼的好處語言通過字節(jié)碼的方式,在一定程度上解決了傳統(tǒng)解釋型語言執(zhí)行效率低的問題,同時(shí)又保留了解釋型語言可移植的特點(diǎn)。 String和StringBuffer、StringBuilder的區(qū)別是什么?String為什么是不可變的? String和StringBuffer、StringBuilder的區(qū)別 可變性...

    yearsj 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<