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; }
廣告