ServiceLoader
を使用して、 .jar
ファイルにパックされたファイルで指定された、指定された型(=サービス)を拡張するクラスのインスタンスを取得できます。拡張/実装されたサービスは多くの場合インタフェースですが、これは必須ではありません。
拡張/実装クラスは、 ServiceLoader
がそれらをインスタンス化するためのゼロ引数コンストラクタを提供する必要があります。
ServiceLoader
によって検出されるには、実装されたサービスの完全修飾型名の名前を持つテキストファイルを、jarファイルのMETA-INF/services
ディレクトリ内に格納する必要があります。このファイルには、1行にサービスを実装するクラスの完全修飾名が1つ含まれています。