Modifier
для Exports
в java-документе говорится, что
MANDATED
Экспорт был неявно объявлен в источнике модуля декларация.
SYNTHETIC
Экспорт не был явно или неявно объявлен в источнике объявление модуля.
Посмотрев несколько module-info.class
es, я вижу, что обычно есть два типа использования:
module java.base {
...
exports java.util; // type 1
exports java.util.concurrent;
exports java.util.concurrent.atomic;
exports jdk.internal to jdk.jfr; // type 2
exports jdk.internal.jmod to
jdk.compiler,
jdk.jlink;
...
}
Qualified Exports описывают эти два типа, но ссылки на типы перечислений отсутствуют. Это разные типы, упомянутые в документах?
Q1. Обычно SYNTHETIC
и MANDATED
являются модификаторами, используемыми как Exports
, ModuleDescriptor
, Opens
и Requires
. В чем разница между этими двумя и одна предпочтительна над другой на практике?
Q2. Какой пример SYNTHETIC
Modifier
в любом случае, если он не объявлен в источнике модуля?