クラスAbstractResourceBundleProvider
java.lang.Object
java.util.spi.AbstractResourceBundleProvider
- すべての実装されたインタフェース:
ResourceBundleProvider
public abstract class AbstractResourceBundleProvider extends Object implements ResourceBundleProvider
AbstractResourceBundleProviderは、ResourceBundleProviderのプロバイダ実装クラスの基本サポートを提供する抽象クラスです。
リソース・バンドルは、1つ以上の名前付きモジュール「サービス・プロバイダ・モジュール」にパッケージ化できます。 リソース・バンドルのconsumerは、ResourceBundle.getBundle(String)を呼び出すものです。 コンシューマ・モジュールは、別のモジュールによって提供されるリソース・バンドル"com.example.app.MyResources"をロードするために、「サービス・ローダー」メカニズムを使用します。 "com.example.app.spi.MyResourcesProvider"という名前のサービス・インタフェースを定義する必要があります。「サービス・プロバイダ・モジュール」は、次のように"com.example.app.spi.MyResourcesProvider"の実装クラスを提供します:
import com.example.app.spi.MyResourcesProvider; class MyResourcesProviderImpl extends AbstractResourceBundleProvider implements MyResourcesProvider { public MyResourcesProviderImpl() { super("java.properties"); } // this provider maps the resource bundle to per-language package protected String toBundleName(String baseName, Locale locale) { return "p." + locale.getLanguage() + "." + baseName; } public ResourceBundle getBundle(String baseName, Locale locale) { // this module only provides bundles in French if (locale.equals(Locale.FRENCH)) { return super.getBundle(baseName, locale); } // otherwise return null return null; } }
詳細については、ResourceBundleProviderを参照してください。
- 導入されたバージョン:
- 9
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protected"java.properties"形式でAbstractResourceBundleProviderを構築します。protectedAbstractResourceBundleProvider(String... formats) AbstractResourceBundleProviderを指定されたformatsで構築します。 -
メソッドのサマリー
修飾子と型メソッド説明与えられたbaseNameとlocaleのResourceBundleを返します。protected StringtoBundleName(String baseName, Locale locale) このプロバイダが提供する指定されたbaseNameおよびlocaleのバンドル名を返します。
-
コンストラクタの詳細
-
AbstractResourceBundleProvider
protected AbstractResourceBundleProvider()"java.properties"形式でAbstractResourceBundleProviderを構築します。 このコンストラクタはAbstractResourceBundleProvider("java.properties")と等価です。 -
AbstractResourceBundleProvider
protected AbstractResourceBundleProvider(String... formats) AbstractResourceBundleProviderを指定されたformatsで構築します。getBundle(String, Locale)メソッドは、指定されたformatsのリソース・バンドルを検索します。formatsは"java.class"または"java.properties"である必要があります。- パラメータ:
formats- リソース・バンドルのロードに使用されるフォーマット- スロー:
NullPointerException- 指定されたformatsがnullの場合IllegalArgumentException- 指定されたformatsが"java.class"または"java.properties"でない場合。
-
-
メソッドの詳細
-
toBundleName
このプロバイダが提供する指定されたbaseNameおよびlocaleのバンドル名を返します。- APIのノート:
- リソース・バンドル・プロバイダは、パッケージが他の名前付きモジュール間で分割されていない場合、リソース・バンドルのベース名と同じパッケージにそのリソース・バンドルをパッケージ化できます。 特定のベース名のリソース・バンドルを提供するバンドル・プロバイダが複数存在する場合、リソース・バンドルを言語ごとのグループ化またはリージョンごとのグループ化でパッケージ化して、分割パッケージを排除できます。
たとえば、
baseNameが"p.resources.Bundle"の場合、Locale("ja", "", "XX")およびLocale("en")の"p.resources.Bundle"のリソース・バンドル名はそれぞれ"p.resources.ja.Bundle_ja_ _XX"および"p.resources.Bundle_en"になります。このメソッドは、
getBundle(String, Locale)メソッドのデフォルトの実装からコールされます。 - 実装上のノート:
- このメソッドのデフォルトの実装は、
ResourceBundle.Control.toBundleName(String, Locale)の実装と同じです。 - パラメータ:
baseName- リソース・バンドルの基底名。完全指定クラス名locale- リソース・バンドルのロード対象となるロケール- 戻り値:
- リソース・バンドルのバンドル名
-
getBundle
public ResourceBundle getBundle(String baseName, Locale locale) 与えられたbaseNameとlocaleのResourceBundleを返します。- 定義:
- インタフェース
ResourceBundleProvider内のgetBundle - 実装上のノート:
- このメソッドのデフォルトの実装では、
toBundleNameメソッドをコールしてbaseNameおよびlocaleのバンドル名を取得し、このプロバイダのモジュールでローカルなバンドル名のリソース・バンドルを検索します。 このプロバイダの構成時に指定された形式のみを検索します。 - パラメータ:
baseName- リソース・バンドルの基底バンドル名。完全指定クラス名locale- リソース・バンドルのインスタンス化対象となるロケール- 戻り値:
- 指定された
baseNameとlocaleのResourceBundle、またはリソース・バンドルが見つからない場合はnull - スロー:
NullPointerException-baseNameまたはlocaleがnullである場合UncheckedIOException- リソース・バンドルのロード中にIO例外が発生した場合
-