2017-10-14 99 views
0

如果module-info.java引用帶有「Automatic-Module-Name」設置的自動模塊,爲什麼Java 9編譯器會警告「需要自動模塊指令」?這些模塊有什麼風險?爲什麼javac會抱怨命名的自動模塊?

這個問題不是What is an automatic module?的確切副本,因爲後者沒有解決我引用的編譯器警告背後的具體原因(問題的上下文很重要)。也就是說,這是後續閱讀的有用鏈接。

+2

雖然不是一個確切的副本,但恕我直言,這個答案已在[什麼是自動模塊?](https://stackoverflow.com/questions/46741907/what-is-an-automatic-module )..只是它沒有具體包括雷米的前景。 – nullpointer

+4

可能重複[什麼是自動模塊?](https://stackoverflow.com/questions/46741907/what-is-an-automatic-module) – ZhekaKozlov

+2

順便說一句,你可以通過使用javac的額外選項來禁用此警告「 - Xlint「,例如」-Xlint:all,-requires-automatic「,意思是」啓用所有警告,但警告在需要子句中使用自動模塊「。 – Male

回答

2

報價Remi Forax

的主要問題是自動模塊可以看到類的類路徑,但它也出口其所有的包裝,所以沒有封裝,一旦你需要一個自動模塊,所有自動來自模塊路徑的模塊是可見的。

所以,當你轉換到模塊世界時,自動模塊是一個很好的工具,但很好,你不需要任何自動模塊在你的依賴關係圖中。

+0

不要誤解我的意思,但每次我閱讀這個答案時,我都覺得這已經在重複鏈接問題中討論過了。這裏有什麼不同,你是否也可以把它放在答案中? – nullpointer

+0

@nullpointer鏈接問題的接受答案詳細討論了自動模塊。如果我們要把這個問題作爲一個重複來解決,那麼就不清楚哪個子頁面的這個2頁的答案能夠解決編譯器的警告。這就像問「爲什麼我得到這個Java編譯器錯誤?」和發佈Java語言規範的人作爲答案。當然,答案是在那裏,但祝你好運找到它:) – Gili

+0

如果你知道,它有一個好東西要指出,你可以建議(評論),並編輯答案,以顯示信息。提出另一個問題,從中提出具體的專欄也是沒有道理的。 – nullpointer

相關問題