java9-模組化open/opens/use/provides...with...
- opens
- opens 用來指定開放的包,其中public型別是可以直接訪問的,其他型別可以通過反射得到.
module java.house {
// opens <package> 或者 opens <package> to <module1>...
opens com.xhx.house;
}
- open
- 用來指定開放模組,開放模組的所有包都是公開的,public的可以直接引用使用,其他型別可以通過反射得到.
open java.house {
//裡面不能再使用opens了,因為整個包都已經open了
}
- uses
- uses語句使用服務介面的名字,當前模組就會發現它,使用java.util.ServiceLoader類進行載入,必須是本模組中的,不能是其他模組中的.其實現類可以由其他模組提供.
- provides…with…
- 語句指定一個或多個服務介面的實現類
module java.computer {
exports com.xhx.computer;
uses com.xhx.computer.IComputer;
provides com.xhx.computer.IComputer with com.xhx.computer.impl.Dell;
}