web-dev-qa-db-ja.com

Java 9モジュールからすべてのパッケージをエクスポートする方法は?

現在、所有しているすべてのモジュールについて、エクスポートするパッケージを明示的に指定する必要があります。例えば:

module core {
    exports cc.blynk.server.core;
    exports cc.blynk.server.core.protocol.handlers.decoders;
    exports cc.blynk.server.core.protocol.handlers.encoders;
}

ただし、あまり便利ではありません。私はそのようなことをしたいと思います:

module core {
    exports cc.blynk.server.core.*;
}

それを行う方法はありますか?この制限はどこから来るのですか?

12

の使用法

module core {
    exports cc.blynk.server.core.*;
}

これは、コードをモジュール化する目的に反する、さまざまなモジュールからエクスポートされたさまざまなパッケージでの競合に大きくつながる可能性があるため、お勧めしません。


さらに、スレッドの1つから引用します。

モジュールによってエクスポートされたパッケージは、コンシューマーが信頼できる安定したAPIであることが意図されています。このため、モジュールの作成者にエクスポートされたパッケージを明示的に記述させます。これにより、複数のモジュールが同じパッケージを不必要にエクスポートする可能性も低くなります。さらに、com.abs.*が修飾なしでエクスポートされ、com.abs.fooが修飾付きでエクスポートされた場合に発生する、混乱を回避します。

12
Naman