Открыты ли некомпилированные модули в неназванном пакете именованного модуля? - PullRequest
2 голосов
/ 27 сентября 2019

Я не смог найти упоминания об этом в JLS, он говорит только о том, как модули компиляции размещаются в неназванном модуле, когда они находятся в неназванном пакете.

Справочная информация: многим библиотекам требуется код пользователя дляпоместите файл конфигурации с конкретным именем в неназванный (по умолчанию) пакет.Я хочу знать, гарантирует ли JLS, что эти ресурсы могут быть найдены через ClassLoader::getSystemResourceAsStream при использовании модулей.Кажется, это работает, но я хотел бы иметь источник.

Это имело бы смысл, потому что нет синтаксиса для opens "", поэтому единственный способ быть явным - открыть сам модуль..

1 Ответ

1 голос
/ 27 сентября 2019

Я думаю, это довольно ясно.

Безымянный модуль экспортирует каждый пакет, чьи обычные единицы компиляции связаны с этим неназванным модулем.

Безымянный модуль открывает каждый пакет, чья обычная компиляциямодули связаны с этим безымянным модулем.

Относительно ассоциации:

Хост-система должна ассоциировать обычные модули компиляции в неназванном пакете с неназванным модулем (§7.7.5), а не именованный модуль.

Источник

Примечание: речь идет об экспорте пакета, а не об экспорте модулей компиляции, поэтому ресурсы впакет распространяется на это заявление.

...