Java 9 中 module-info 檔案中的“export”語句有什麼作用?


一個**模組**是**程式碼**和**資料**的組合,它具有名稱,宣告對其他模組的依賴關係,匯出包含可從模組外部訪問的公共型別的包,並指定它使用的服務或它提供的服務實現。所有這些都在**module-info.java**檔案中指定,該檔案包含在模組的根目錄中。

在“**module-info.java**”檔案中可以使用兩種型別的“**export**”語句。

1) **export <package>:** 預設情況下,模組的**public**型別不再在模組外部可見。要使給定包的公共型別對其他模組可見,必須**匯出**此包。請記住,我們是在包級別,而不是在型別的單元級別。但是,不會匯出子包。

我們需要允許其他模組使用包 **tp.com.tutorialspoint.model** 的類和介面,我們可以如下編寫:

module com.tutorialspoint.model {
   exports tp.com.tutorialspoint.model;
}

非常重要的是要理解,一個包只能存在於一個模組中。否則,我們會得到如下錯誤:

Error:(1, 1) java: package exists in another module:


2) **export <package> to <module>:** 透過將某些包的可見性降低到有限的模組列表,我們可以加強模組的安全性:只有列出的模組才能訪問這些類。

module com.tutorialspoint.model {
   exports tp.com.tutorialspoint.model
      to com.tutorialspoint.gui;
}

更新於:2020年4月28日

2K+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告