Java には、java.util パッケージの ServiceLoader クラスがあり、 の位置を決めるのに役立ちます。 #Services は、実行時にクラスパス内を検索することでプロバイダー を提供します。モジュールで定義されたサービス プロバイダーについては、サンプル アプリケーションを見て、サービスを含むモジュールを宣言し、それがどのように機能するかを確認できます。 たとえば、「
test.app があります。モジュールを使用する必要があります。System.getLogger( ) ファクトリ メソッド ロガーを取得します。 我们需要使用 Logger 模块,可以借助 <strong>module com.tutorialspoint.test.app {
requires java.logging;
exports com.tutorialspoint.platformlogging.app;
uses java.lang.System.LoggerFinder;
}</strong>
package com.tutorialspoint.platformlogging.app; public class MainApp { private static <strong>Logger </strong>LOGGER = <strong>System.getLogger()</strong>; public static void main(String args[]) { LOGGER.log(); } }
これは、「
##LoggerFinder#test
内の「.logging」モジュール:
package com.tutorialspoint.platformlogging.logger; public class MyLoggerFinder extends LoggerFinder { <strong>@Override</strong> public Logger getLogger(String name, Module module) { // return a Logger depending on name/module } }
LoggerFinder サービスの実装を提供する場合があります。
<strong>module com.tutorialspoint.test.logging { provides java.lang.System.LoggerFinder with com.tutorialspoint.platformlogging.logger.MyLoggerFinder; }</strong>
以上がJava 9 では、モジュール内で ServiceLoader クラスをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。