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
- 実装上のノート:
- このメソッドのデフォルトの実装では、
toBundleName
メソッドをコールしてbaseName
およびlocale
のバンドル名を取得し、このプロバイダのモジュールでローカルなバンドル名のリソース・バンドルを検索します。 このプロバイダの構成時に指定された形式のみを検索します。 - パラメータ:
baseName
- リソース・バンドルの基底バンドル名。完全指定クラス名locale
- リソース・バンドルのインスタンス化対象となるロケール- 戻り値:
- 指定された
baseName
とlocale
のResourceBundle
、またはリソース・バンドルが見つからない場合はnull
- 例外:
NullPointerException
-baseName
またはlocale
がnull
である場合UncheckedIOException
- リソース・バンドルのロード中にIO例外が発生した場合
-