Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のモジュールでServiceLoaderクラスを使用するのはいつですか?


JavaにはServiceLoaderがあります java.utilのクラス 場所を特定するのに役立つパッケージ サービスプロバイダー 実行時にクラスパスを検索します。モジュールで定義されたサービスプロバイダーの場合、サンプルアプリケーションを見て、サービスを使用してモジュールを宣言し、その動作を確認できます。

たとえば、「 test.app」があります " System.getLogger()から取得できるロガーを使用する必要があるモジュール LoggerFinderを使用したファクトリメソッド サービス。

module com.tutorialspoint.test.app {
   requires java.logging;
   exports com.tutorialspoint.platformlogging.app;
   uses java.lang.System.LoggerFinder;
}
以下はtest.app.MainAppです クラス:

package com.tutorialspoint.platformlogging.app;

public class MainApp {
   private static Logger LOGGER = System.getLogger();
   public static void main(String args[]) {
      LOGGER.log();
   }
}


これはLoggerFinderです 「テスト」内での実装 .logging "モジュール:

package com.tutorialspoint.platformlogging.logger;

public class MyLoggerFinder extends LoggerFinder {
   @Override
   public Logger getLogger(String name, Module module) {
      // return a Logger depending on name/module
   }
}
" test.logging "モジュール宣言、 LoggerFinderの実装を提供できます 「提供– with "句。

module com.tutorialspoint.test.logging {
   provides java.lang.System.LoggerFinder
   with com.tutorialspoint.platformlogging.logger.MyLoggerFinder;
}

  1. Javaでpack()メソッドを使用できるのはいつですか?

    pack() メソッドはウィンドウで定義されています Javaのクラスであり、すべてのコンテンツが適切なサイズ以上になるようにフレームのサイズを設定します。 pack()の代替 メソッドは、 setSize()を呼び出して、フレームサイズを明示的に確立することです。 またはsetBounds() メソッド。通常、 pack()を使用します setSize()よりもメソッドを呼び出す方が望ましい パックはフレームレイアウトマネージャーにフレームサイズを任せ、レイアウトマネージャーはプラットフォームの依存関係やコンポーネントサイズに影響を与えるその他の要因にうまく適応できるためです。 構文 p

  2. SimpleDateFormatクラスを使用してJavaDateをフォーマットされた文字列に変換するにはどうすればよいですか?

    Java SimpleDateFormatクラスは、Java文字列から日付への変換または日付から文字列への変換を提供します。 例 import java.util.Date; import java.text.SimpleDateFormat; import java.util.Calendar; public class SimpleDateFormatTest {    public static void main(String[] args) {       // get today's date     &