Java 9 Modularity 關鍵字整理

模組這件事其實不是甚麼新鮮的技術了,早在JavaScript, Python等等語言就有了,而Java也終於在JDK9.0釋出了Modularity。在模組出來以前,Java的封裝一直是很頭疼的問題,基本上都是包裝成jar檔,裡面有package,package裏頭的修飾詞有public、default、protected、private。

Modifier  Class Package Subclass  World
public  Y  Y Y Y
protected  Y  Y Y N
default (no modifier)  Y  Y N N
private  Y N N N

這樣的封裝有一個很大的問題。如果我有一個類別A,它被放置com.my.package,而我又有一個類別B,它被放置在com.my.package.inner,A可以被其他package存取,但B是非公開的,同時A也要可以存取B的內容。這時會發現B的修飾詞不知道該放甚麼了,因為唯一可以被自己以外的package讀到的修飾詞就只有public,而本來用意只是想給com.my.package使用的B,現在變成所有人都可以讀取了,這並不是我們一開始想要的結果。

顯示完整資訊