W deklaracji modułu Java 9.x za istnieją 2 konstrukty:Dlaczego eksportowanie całego modułu jest zabronione?
exports com.foo;
I
opens com.foo;
Gdzie exports
dotacje kompilacji dostęp, natomiast opens
umożliwia dostęp wykonania, jako odbicie i zasobów.
opens
ma jeden wyrozumiałość nad exports
że można zdefiniować cały moduł jako otwarte, co powoduje taką samą jak wyraźnie otwierające każdy pakiet:
open module com.mod {
ale nie ma podobnej skonstruować
exported module com.mod {
My Pytanie: Dlaczego tak jest; jakie decyzje podjęto, aby umożliwić otwarcie całego modułu jednocześnie, ale nie eksportować?