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
を構築します。protected
AbstractResourceBundleProvider
(String... formats) AbstractResourceBundleProvider
を指定されたformats
で構築します。 -
メソッドのサマリー
修飾子と型メソッド説明与えられたbaseName
とlocale
のResourceBundle
を返します。protected String
toBundleName
(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
- 実装上のノート:
- このメソッドのデフォルト実装では、
baseName
およびlocale
のバンドル名を取得するためにtoBundleName
メソッドを呼び出し、このプロバイダのモジュール内のローカル・バンドル名のリソース・バンドルを検索します。 このプロバイダが構築されたときに指定されたフォーマットのみを検索します。 - パラメータ:
baseName
- リソース・バンドルの基底バンドル名。完全指定クラス名locale
- リソース・バンドルのインスタンス化対象となるロケール- 戻り値:
- 指定された
baseName
とlocale
のResourceBundle
、またはリソース・バンドルが見つからない場合はnull
- 例外:
NullPointerException
-baseName
またはlocale
がnull
である場合UncheckedIOException
- リソース・バンドルのロード中にIO例外が発生した場合
-