|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.ResourceBundle
public abstract class ResourceBundle
リソースバンドルには、ロケール固有のオブジェクトが含まれています。プログラムで String
などのロケール固有のリソースが必要なときは、ユーザーのロケールに合ったリソースバンドルからロードできます。このように、リソースバンドルから、ロケール固有の情報のすべてでなくてもその大部分を切り離すことで、ユーザーのロケールにはほとんど依存しないプログラムコードを書くことができます。
これにより、以下の特徴を持つプログラムを書くことが可能になります。
リソースバンドルはファミリに属しています。 そのファミリでは、メンバーは共通の基底名を共有していますが、ファミリ名にはロケールを識別する追加コンポーネントも含まれています。たとえば、リソースバンドルのファミリの基底名は「MyResources」です。ファミリは、ファミリと同じ名前 (MyResources) で、特定のロケールがサポートされない場合は、最後の手段のバンドルとして使用される、デフォルトのリソースバントルを持つ必要があります。また、ファミリは、必要なだけの数のロケール固有のメンバーを提供することができます。 たとえば、「MyResources_de」と名付けられたドイツのメンバーなどです。
ファミリの各リソースバンドルには同じ項目がありますが、こうした項目は当該リソースバンドルにより表されるロケールに合わせて翻訳されています。たとえば、「MyResources」と「MyResources_de」の両方に、操作を取り消すためのボタンで使用される String
があるとします。その String
に、「MyResources」では「Cancel」を格納し、「MyResources_de」では「Abbrechen」を格納することができます。
同じ言語を使用するロケールでも国によってリソースが異なるときは、特殊化が可能です。たとえば、「MyResources_de_CH」には、スイス (CH) 系のドイツ語 (de) のオブジェクトが含まれています。リソースの一部だけを修正することもできます。
プログラムでロケール固有のオブジェクトが必要なときは、getBundle
メソッドを使用して、ResourceBundle
クラスを次のようにロードします。
ResourceBundle myResources = ResourceBundle.getBundle("MyResources", currentLocale);
リソースバンドルは、キーと値のペアになっています。キーは、バンドルのロケール固有のオブジェクトを一意に識別します。キーと値の 2 つのペアが含まれている ListResourceBundle
の例を示します。
キーは常にpublic class MyResources extends ListResourceBundle { protected Object[][] getContents() { return new Object[][] { // LOCALIZE THE SECOND STRING OF EACH ARRAY (e.g., "OK") {"OkKey", "OK"}, {"CancelKey", "Cancel"}, // END OF MATERIAL TO LOCALIZE }; } }
String
です。 この例では、キーは「OkKey」と「CancelKey」です。前述した例では、値 「OK」と「Cancel」も String
ですが、必ずしもそうである必要はありません。値は、どの型のオブジェクトでも可能です。
リソースバンドルから適切な getter メソッドを使用してオブジェクトを検索します。「OkKey」と「CancelKey」はどちらも文字列なので、検索には getString
を使用します。
getter メソッドは、すべて引数としてキーを要求し、検出したオブジェクトを返します。オブジェクトが見つからない場合、getter メソッドはbutton1 = new Button(myResources.getString("OkKey")); button2 = new Button(myResources.getString("CancelKey"));
MissingResourceException
をスローします。
getString
以外に、ResourceBundle
では、文字列配列を取得する getStringArray
メソッドも提供します。 同様に、ほかの型のオブジェクトを取得する総称 getObject
メソッドも提供します。getObject
を使用する場合、結果を適切な型にキャストする必要があります。次に例を示します。
int[] myIntegers = (int[]) myResources.getObject("intList");
Java プラットフォームでは、ResourceBundle
の 2 つのサブクラス ListResourceBundle
および PropertyResourceBundle
が用意されています。 これらはリソースを作成するかなり簡単な方法を提供します。前の例で簡単に示したように、ListResourceBundle
は、そのリソースをキーと値のペアのリストとして管理します。PropertyResourceBundle
は、プロパティーファイルを使用してそのリソースを管理します。
ListResourceBundle
または PropertyResourceBundle
では不十分なときは、独自の ResourceBundle
サブクラスを書くことができます。サブクラスでオーバーライドしなければいけないメソッドは 2 つあります。handleGetObject
と getKeys()
です。
ResourceBundle.Control
クラスは、ResourceBundle.Control
インスタンスを取る getBundle
ファクトリメソッドがバンドルロード処理を実行する際に必要とする情報を提供します。ユーザー独自のサブクラスを実装すれば、標準以外のリソースバンドル形式を利用できるようにしたり、検索手順を変更したり、キャッシュパラメータを定義したりできます。詳細については、そのクラスと getBundle
ファクトリメソッドの説明を参照してください。
getBundle
ファクトリメソッドによって作成されたリソースバンドルインスタンスはデフォルトで、キャッシュに格納されます。ファクトリメソッドは、目的のリソースバンドルインスタンスがキャッシュに格納されていれば、その同じインスタンスを複数回返します。getBundle
クライアントは、キャッシュをクリアーしたり、有効期間の値を使ってキャッシュ内のリソースバンドルインスタンスの寿命を管理したり、リソースバンドルインスタンスをキャッシュしないように指定したりできます。詳細については、getBundle
ファクトリメソッド、clearCache
、ResourceBundle.Control.getTimeToLive
、および ResourceBundle.Control.needsReload
の説明を参照してください。
ResourceBundle
のサブクラス MyResources
の非常に簡単な例です。 このサブクラスは 2 つのリソースを管理します (サブクラスが多数のリソースを管理する場合は、Map
を使用する)。「親レベル」の ResourceBundle
が、(下記の okKey のように) 同じ値を持つ同じキーを扱う場合は、値を提供する必要はありません。
// default (English language, United States) public class MyResources extends ResourceBundle { public Object handleGetObject(String key) { if (key.equals("okKey")) return "Ok"; if (key.equals("cancelKey")) return "Cancel"; return null; } public Enumeration<String> getKeys() { return Collections.enumeration(keySet()); } // Overrides handleKeySet() so that the getKeys() implementation // can rely on the keySet() value. protected Set<String> handleKeySet() { return new HashSet<String>(Arrays.asList("okKey", "cancelKey")); } } // German language public class MyResources_de extends MyResources { public Object handleGetObject(String key) { // don't need okKey, since parent level handles it. if (key.equals("cancelKey")) return "Abbrechen"; return null; } protected Set<String> handleKeySet() { return new HashSet<String>(Arrays.asList("cancelKey")); } }
ResourceBundle
のシングルファミリの使用を制限する必要はありません。たとえば、例外メッセージ ExceptionResources
(ExceptionResources_fr
、ExceptionResources_de
など) で 1 つのリソース、ウィジェット WidgetResource
(WidgetResources_fr
、WidgetResources_de
など) で 1 つのリソースというように、好きなようにリソースを分割してバンドルのセットを持つこともできます。
ListResourceBundle
,
PropertyResourceBundle
,
MissingResourceException
入れ子のクラスの概要 | |
---|---|
static class |
ResourceBundle.Control
ResourceBundle.Control は、バンドルロード処理中に ResourceBundle.getBundle ファクトリメソッドによって呼び出される一連のコールバックメソッドを定義します。 |
フィールドの概要 | |
---|---|
protected ResourceBundle |
parent
このバンドルの親バンドル。 |
コンストラクタの概要 | |
---|---|
ResourceBundle()
唯一のコンストラクタです。 |
メソッドの概要 | |
---|---|
static void |
clearCache()
呼び出し元のクラスローダーを使ってロードされたリソースバンドルのすべてを、キャッシュから削除します。 |
static void |
clearCache(ClassLoader loader)
指定されたクラスローダーを使ってロードされたリソースバンドルのすべてを、キャッシュから削除します。 |
boolean |
containsKey(String key)
指定された key がこの ResourceBundle またはその親バンドル内に含まれるかどうかを判定します。 |
static ResourceBundle |
getBundle(String baseName)
指定された基底名、デフォルトのロケール、および呼び出し側のクラスローダーを使用して、リソースバンドルを取得します。 |
static ResourceBundle |
getBundle(String baseName,
Locale locale)
指定された基底名、ロケール、および呼び出し側のクラスローダーを使用して、リソースバンドルを取得します。 |
static ResourceBundle |
getBundle(String baseName,
Locale locale,
ClassLoader loader)
指定された基底名、ロケール、クラスローダーを使用して、リソースバンドルを取得します。 |
static ResourceBundle |
getBundle(String baseName,
Locale targetLocale,
ClassLoader loader,
ResourceBundle.Control control)
指定された基底名、ターゲットロケール、クラスローダー、およびコントロールを使用して、リソースバンドルを返します。 |
static ResourceBundle |
getBundle(String baseName,
Locale targetLocale,
ResourceBundle.Control control)
指定された基底名、ターゲットロケール、コントロール、および呼び出し側のクラスローダーを使用して、リソースバンドルを返します。 |
static ResourceBundle |
getBundle(String baseName,
ResourceBundle.Control control)
指定された基底名、デフォルトのロケール、および指定されたコントロールに基づいて、リソースバンドルを返します。 |
abstract Enumeration<String> |
getKeys()
キーのリストを返します。 |
Locale |
getLocale()
リソースバンドルの Locale を返します。 |
Object |
getObject(String key)
このリソースバンドルまたはその親リソースバンドルのいずれかから指定されたキーのオブジェクトを取得します。 |
String |
getString(String key)
このリソースバンドルまたはその親リソースバンドルのいずれかから指定されたキーの文字列を取得します。 |
String[] |
getStringArray(String key)
このリソースバンドルまたはその親リソースバンドルのいずれかから指定されたキーの文字列配列を取得します。 |
protected abstract Object |
handleGetObject(String key)
このリソースバンドルから指定されたキーのオブジェクトを取得します。 |
protected Set<String> |
handleKeySet()
この ResourceBundle だけに格納されているキーの Set を返します。 |
Set<String> |
keySet()
この ResourceBundle とその親バンドル内に含まれるすべてのキーの Set を返します。 |
protected void |
setParent(ResourceBundle parent)
このバンドルの親バンドルを設定します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
protected ResourceBundle parent
getObject
によって参照されます。
コンストラクタの詳細 |
---|
public ResourceBundle()
メソッドの詳細 |
---|
public final String getString(String key)
(String) getObject
(key)
.
key
- 望ましい文字列のキー
NullPointerException
- key
が null
の場合
MissingResourceException
- 指定されたキーのオブジェクトが見つからない場合
ClassCastException
- 指定されたキーの見つかったオブジェクトが文字列でない場合public final String[] getStringArray(String key)
(String[]) getObject
(key)
.
key
- 望ましい文字列配列のキー
NullPointerException
- key
が null
の場合
MissingResourceException
- 指定されたキーのオブジェクトが見つからない場合
ClassCastException
- 指定されたキーの見つかったオブジェクトが文字列配列でない場合public final Object getObject(String key)
handleGetObject
を使用して、このリソースバンドルからオブジェクトを取得しようとします。オブジェクトを取得できず、親リソースバンドルが null でない場合、親の getObject
メソッドを呼び出します。それでも取得できない場合は、MissingResourceException をスローします。
key
- 望ましいオブジェクトのキー
NullPointerException
- key
が null
の場合
MissingResourceException
- 指定されたキーのオブジェクトが見つからない場合public Locale getLocale()
protected void setParent(ResourceBundle parent)
getObject
によって参照されます。
parent
- このバンドルの親バンドルpublic static final ResourceBundle getBundle(String baseName)
getBundle(baseName, Locale.getDefault(), this.getClass().getClassLoader())
,
getClassLoader()
が、ResourceBundle
のセキュリティー特権により実行されることだけが異なります。検索とインスタンス生成方法の詳細については、getBundle
を参照してください。
baseName
- リソースバンドルの基底名。完全指定クラス名
NullPointerException
- baseName
が null
の場合
MissingResourceException
- 指定された基底名のリソースバンドルが見つからない場合public static final ResourceBundle getBundle(String baseName, ResourceBundle.Control control)
getBundle(baseName, Locale.getDefault(), this.getClass().getClassLoader(), control),
getClassLoader()
が、ResourceBundle
のセキュリティー特権により実行されることだけが異なります。ResourceBundle.Control
を使用したリソースバンドルロード処理の完全な説明については、getBundle
を参照してください。
baseName
- リソースバンドルの基底名。完全指定クラス名control
- リソースバンドルロード処理のための情報を提供するコントロール
NullPointerException
- baseName
または control
が null
の場合
MissingResourceException
- 指定された基底名のリソースバンドルが見つからない場合
IllegalArgumentException
- 指定された control
が正しく実行されない場合 (たとえば、control.getCandidateLocales
が null を返すなど。)control
の検証が必要に応じて実行されることに注意public static final ResourceBundle getBundle(String baseName, Locale locale)
getBundle(baseName, locale, this.getClass().getClassLoader())
,
getClassLoader()
が、ResourceBundle
のセキュリティー特権により実行されることだけが異なります。検索とインスタンス生成方法の詳細については、getBundle
を参照してください。
baseName
- リソースバンドルの基底名。完全指定クラス名locale
- リソースバンドルが必要なロケール
NullPointerException
- baseName
または locale
が null
の場合
MissingResourceException
- 指定された基底名のリソースバンドルが見つからない場合public static final ResourceBundle getBundle(String baseName, Locale targetLocale, ResourceBundle.Control control)
getBundle(baseName, targetLocale, this.getClass().getClassLoader(), control),
getClassLoader()
が、ResourceBundle
のセキュリティー特権により実行されることだけが異なります。ResourceBundle.Control
を使用したリソースバンドルロード処理の完全な説明については、getBundle
を参照してください。
baseName
- リソースバンドルの基底名。完全指定クラス名targetLocale
- リソースバンドルが必要なロケールcontrol
- リソースバンドルロード処理のための情報を提供するコントロール
locales
内のある Locale
に対するリソースバンドル
NullPointerException
- baseName
、locales
、または control
が null
の場合
MissingResourceException
- locales
内のどのロケールにおいても指定された基底名のリソースバンドルが見つからない場合
IllegalArgumentException
- 指定された control
が正しく実行されない場合 (たとえば、control.getCandidateLocales
が null を返すなど。)control
の検証が必要に応じて実行されることに注意public static ResourceBundle getBundle(String baseName, Locale locale, ClassLoader loader)
理論的には、getBundle
では次の方法を使用して、リソースバンドルの検出および生成を行います。
getBundle
は、基底名、指定されたロケール、およびデフォルトのロケール (Locale.getDefault
から取得したロケール) を使用して、「候補のバンドル名」のシーケンスを生成します。指定されたロケールの言語、国、およびバリアントがすべて空の文字列の場合、基底名は候補のバンドル名のみになります。それ以外の場合には、指定したロケール (language1、country1、variant1) およびデフォルトのロケール (language2、country2、variant2) の属性値から、次のシーケンスが生成されます。
最終コンポーネントが空の文字列の場合、候補のバンドル名は省略されます。たとえば、country1 が空の文字列の場合、2 番目の候補のバンドル名は省略されます。
getBundle
は実際のリソースバンドルを「インスタンス化」できる最初の名前を見つけるために、候補のバンドル名を繰り返し処理します。各候補バンドル名ごとに、リソースバンドルを次のように作成しようとします。
getBundle
はこのクラスの新しいインスタンスを作成して、「結果リソースバンドル」としてそのインスタンスを使用します。
getBundle
はプロパティーリソースファイルを見つけようとします。すべての「.」文字を「/」文字に置き換え、「.properties」文字列を追加して、候補のバンドル名からパス名を生成します。これは、ClassLoader.getResource
を使ってこの名前を持つ「リソース」の検索を試みる。(getResource
における「リソース」はリソースバンドルの内容とはまったく関係ないことに注意。それは、ファイルなどのデータコンテナにすぎない。)「リソース」を見つけた場合、リソースのコンテンツから新しい PropertyResourceBundle
インスタンスを作成しようとします。作成が成功した場合は、このインスタンスは、「結果リソースバンドル」になります。
結果リソースバンドルが見つからない場合、MissingResourceException
がスローされます。
結果リソースバンドルが見つかったときは、その親連鎖をインスタンス化します。getBundle
は候補のバンドル名を繰り返し処理します。 このバンドル名は、結果リソースバンドルのバンドル名からバリアント、国、および言語を (前に「_」についたものに関して毎回) 連続して削除することによって取得します。前述したように、最終コンポーネントが空の文字列である場合、候補のバンドル名は省略されます。各候補のバンドル名により、前述したように、リソースバンドルをインスタンス化しようとします。前にインスタンス化したリソースバンドルに null 以外の親リソースバンドルがないかぎり、インスタンスに成功した場合は常に、前にインスタンス化したリソースバンドルの setParent
メソッドを新しいリソースバンドルにより呼び出します。
getBundle
は、インスタンス化したリソースバンドルをキャッシュし、同じリソースバンドルのインスタンスを複数回返す可能性があります。
baseName
引数は完全指定されたクラス名である必要があります。ただし、前バージョンとの互換性に関しては、Sun の Java SE ランタイム環境はそのことを検証しません。 そのため、完全指定されたクラス名 (「.」を使用) の代わりにパス名 (「/」を使用) を指定して、PropertyResourceBundle
にアクセスできるようになります。
MyResources.class MyResources.properties MyResources_fr.properties MyResources_fr_CH.class MyResources_fr_CH.properties MyResources_en.properties MyResources_es_ES.classすべてのファイルの内容が有効です (つまり、「.class」ファイルは
ResourceBundle
の public 非抽象サブクラスを含んでおり、「.properties」ファイルは構文的に正しい)。デフォルトのロケールは Locale("en", "GB")
です。
表示されたロケール引数値を持つ getBundle
の呼び出しは、次のソースからリソースバンドルをインスタンス化します。
ファイル MyResources_fr_CH.properties が使用されることは決してありません。なぜなら、このファイルは MyResources_fr_CH.class によって隠蔽されるからです。同様に、MyResources.properties も MyResources.class によって隠蔽されます。
baseName
- リソースバンドルの基底名。完全指定クラス名locale
- リソースバンドルが必要なロケールloader
- リソースバンドルのロード元のクラスローダ
NullPointerException
- baseName
、locale
またはloader
が null
の場合
MissingResourceException
- 指定された基底名のリソースバンドルが見つからない場合public static ResourceBundle getBundle(String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control)
control
引数のない getBundle
ファクトリメソッド とは異なり、指定された control
によって、リソースバンドルを検索およびインスタンス化する方法が決まります。基本的に、control
が指定された場合のバンドルロード処理の実行手順は、次のようになります。
baseName
、targetLocale
、および loader
に対するリソースバンドルを、キャッシュ内で検索します。要求されたリソースバンドルのインスタンスがキャッシュ内で見つかり、そのインスタンスとすべての親インスタンスの有効期間がまだ過ぎていない場合には、そのインスタンスが呼び出し元に返されます。それ以外の場合、このファクトリメソッドは以下のロード処理へと進みます。control.getFormats
メソッドが呼び出され、リソースバンドル形式が取得されます。文字列「java.class」
と「java.properties」
はそれぞれ、クラスベースのリソースバンドルと プロパティー ベースのリソースバンドルを表します。「java.」
で始まるその他の文字列は、将来の拡張用として予約されているため、アプリケーション定義形式では使用しないでください。その他の文字列は、アプリケーション定義形式を表します。control.getCandidateLocales
メソッドがターゲットロケールを指定して呼び出され、リソースバンドルの検索に使用される「候補ロケール」のリストが取得されます。
control.newBundle
メソッドが呼び出され、この基底バンドル名、ある候補ロケール、およびある形式に対する ResourceBundle
がインスタンス化されます。(後述のキャッシュ検索に関する注を参照。)この手順は候補ロケールと形式のすべての組み合わせについて繰り返され、newBundle
メソッドが ResourceBundle
インスタンスを返すかすべての組み合わせが使用された時点で終了します。たとえば、候補ロケールが Locale("de", "DE")
、Locale("de")
、および Locale("")
であり、形式が「java.class」
と「java.properties」
であった場合、control.newBundle
の呼び出し時に使用すべきロケールと形式の組み合わせのシーケンスは、次のようになります。
ロケール |
形式 |
Locale("de", "DE") |
java.class |
Locale("de", "DE") | java.properties |
Locale("de") | java.class |
Locale("de") | java.properties |
Locale("") |
java.class |
Locale("") | java.properties |
Locale("")
に対するバンドル) であり、候補ロケールリストに Locale("")
しか含まれていなかった場合には、そのバンドルを呼び出し元に返します。見つかったバンドルが基底バンドルであるが、候補ロケールリストに Locale("") 以外のロケールが含まれていた場合には、そのバンドルを保留して手順 6 に進みます。見つかったバンドルが基底バンドルでない場合は、手順 7 に進みます。control.getFallbackLocale
メソッドが呼び出され、フォールバックロケール (現在のターゲットロケールの代替となるロケール) が取得されます。このメソッドが null 以外のロケールを返した場合、それが次のターゲットロケールとなり、手順 3 からロード処理が開始されます。それ以外の場合、1 つ前の手順 5 で基底バンドルが見つかり、それを保留していた場合には、その基底バンドルがこの時点で呼び出し元に返されます。それ以外の場合は、MissingResourceException がスローされます。上記のリソースバンドルロード処理の間、このファクトリメソッドは、control.newBundle
メソッドを呼び出す前にキャッシュを検索します。キャッシュ内で見つかったリソースバンドルの有効期間が過ぎていた場合、ファクトリメソッドは control.needsReload
メソッドを呼び出し、そのリソースバンドルを再ロードする必要があるかどうかを判定します。再ロードが必要な場合、ファクトリメソッドは control.newBundle
を呼び出してリソースバンドルを再ロードします。control.newBundle
が null
を返した場合、ファクトリメソッドは、存在しないリソースバンドルの目印として、ダミーのリソースバンドルをキャッシュ内に格納します。これにより、後続の要求に対する検索オーバーヘッドを回避できます。そのようなダミーのリソースバンドルは、control
で指定されたのと同じの有効期限制御下に入ります。
デフォルトでは、ロードされたリソースバンドルのすべてがキャッシュに格納されます。詳細については、control.getTimeToLive
を参照してください。
デフォルトの ResourceBundle.Control
実装を使用したバンドルロード処理の例を、次に示します。
条件:
foo.bar.Messages
Locale
:Locale.ITALY
Locale
:Locale.FRENCH
foo/bar/Messages_fr.properties
と foo/bar/Messages.properties
まず、getBundle
は、次の順番でリソースバンドルのロードを試みます。
foo.bar.Messages_it_IT
foo/bar/Messages_it_IT.properties
foo.bar.Messages_it
foo/bar/Messages_it.properties
foo.bar.Messages
foo/bar/Messages.properties
この時点で、getBundle
は foo/bar/Messages.properties
を見つけますが、それを保留します。なぜなら、それは基底バンドルだからです。getBundle
は control.getFallbackLocale("foo.bar.Messages", Locale.ITALY)
を呼び出します。すると、Locale.FRENCH
が返されます。次に、getBundle
は次の順番でバンドルのロードを試みます。
foo.bar.Messages_fr
foo/bar/Messages_fr.properties
foo.bar.Messages
foo/bar/Messages.properties
getBundle
は foo/bar/Messages_fr.properties
を見つけ、ResourceBundle
インスタンスを作成します。次に、getBundle
は候補ロケールのリストに基づいて、その親連鎖を設定します。リスト内で見つかるのは foo/bar/Messages.properties
だけです。getBundle
は、foo/bar/Messages_fr.properties
に対するインスタンスの親になる ResourceBundle
インスタンスを作成します。
baseName
- リソースバンドルの基底名。完全指定クラス名targetLocale
- リソースバンドルが必要なロケールloader
- リソースバンドルのロード元のクラスローダcontrol
- リソースバンドルロード処理のための情報を提供するコントロール
NullPointerException
- baseName
、targetLocale
、loader
、または control
が null
の場合
MissingResourceException
- 指定された基底名のリソースバンドルが見つからない場合
IllegalArgumentException
- 指定された control
が正しく実行されない場合 (たとえば、control.getCandidateLocales
が null を返すなど。)control
の検証が必要に応じて実行されることに注意public static final void clearCache()
ResourceBundle.Control.getTimeToLive(String,Locale)
public static final void clearCache(ClassLoader loader)
loader
- クラスローダー
NullPointerException
- loader
が null の場合ResourceBundle.Control.getTimeToLive(String,Locale)
protected abstract Object handleGetObject(String key)
key
- 望ましいオブジェクトのキー
NullPointerException
- key
が null
の場合public abstract Enumeration<String> getKeys()
ResourceBundle
とその親バンドル内に含まれるキーの Enumeration
public boolean containsKey(String key)
key
がこの ResourceBundle
またはその親バンドル内に含まれるかどうかを判定します。
key
- リソースの key
key
がこの ResourceBundle
またはその親バンドル内に含まれる場合は true
、それ以外の場合は false
NullPointerException
- key
が null
の場合public Set<String> keySet()
ResourceBundle
とその親バンドル内に含まれるすべてのキーの Set
を返します。
ResourceBundle
とその親バンドル内に含まれるすべてのキーの Set
protected Set<String> handleKeySet()
ResourceBundle
だけに格納されているキーの Set
を返します。
デフォルト実装は、getKeys
メソッドから返されるキーの Set
を返します。ただし、handleGetObject
メソッドが null
を返すようなキーは除外されます。Set
が作成されると、その値がこの ResourceBundle
内に保存されます。これにより、次の呼び出し時に同じ Set
が生成されるのを防ぐことができます。処理の高速化を図るには、サブクラス実装内でこのメソッドをオーバーライドしてください。
ResourceBundle
だけに格納されているキーの Set
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。