ResourceBundle.Control クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ResourceBundle.Control は、バンドルの読み込みプロセス中に ResourceBundle#getBundle(String,
Locale, ClassLoader, Control) ResourceBundle.getBundle ファクトリ メソッドによって呼び出されるコールバック メソッドのセットを定義します。
[Android.Runtime.Register("java/util/ResourceBundle$Control", DoNotGenerateAcw=true)]
public class ResourceBundle.Control : Java.Lang.Object
[<Android.Runtime.Register("java/util/ResourceBundle$Control", DoNotGenerateAcw=true)>]
type ResourceBundle.Control = class
inherit Object
- 継承
- 属性
注釈
ResourceBundle.Control は、バンドルの読み込みプロセス中に ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle ファクトリ メソッドによって呼び出されるコールバック メソッドのセットを定義します。 言い換えると、 ResourceBundle.Control は、リソース バンドルを読み込むためのファクトリ メソッドと共同作業を行います。 コールバック メソッドの既定の実装では、ファクトリ メソッドが既定の動作を実行するために必要な情報が提供されます。
コールバック メソッドに加えて、 #toBundleName(String, Locale) toBundleName メソッドと #toResourceName(String, String) toResourceName メソッドは、主にコールバック メソッドを実装する際に便利に定義されます。 ただし、 toBundleName メソッドをオーバーライドして、組織内のさまざまな規則とローカライズされたリソースのパッケージ化を提供できます。
toResourceNameメソッドは、間違ったリソースとクラス名の区切り記号を使用しないようにfinal。
#getControl(List)と#getNoFallbackControl(List)の 2 つのファクトリ メソッドは、既定のバンドル読み込みプロセスの一般的なバリエーションを実装するResourceBundle.Controlインスタンスを提供します。
Control#getFormats(String) getFormats メソッドによって返される形式と、ResourceBundle.Control#getCandidateLocales(String, Locale) getCandidateLocales メソッドによって返される候補ロケールは、同じ基本バンドルのすべてのResourceBundle.getBundle呼び出しで一貫性がある必要があります。 それ以外の場合、 ResourceBundle.getBundle メソッドは意図しないバンドルを返す可能性があります。 たとえば、"java.class"の最初の呼び出しに対して getFormats メソッドによってResourceBundle.getBundleのみが返され、2 番目の呼び出しに対してのみ"java.properties"場合、2 番目の呼び出しでは、最初の呼び出し中にキャッシュされたクラスベースの呼び出しが返されます。
ResourceBundle.Control インスタンスは、複数のスレッドで同時に使用される場合、スレッド セーフである必要があります。
ResourceBundle.getBundle は、 ResourceBundle.Control メソッドを呼び出すために同期しません。 メソッドの既定の実装はスレッド セーフです。
アプリケーションでは、ResourceBundle.Control ファクトリ メソッドによって返されるインスタンスまたはgetControlのサブクラスから作成されたResourceBundle.Controlインスタンスを指定して、バンドルの読み込みプロセスをカスタマイズできます。 既定のバンドル読み込みプロセスを変更する例を次に示します。
<b>Example 1</b>
次のコードでは、プロパティ ベースのリソースのみを検索 ResourceBundle.getBundle 。
import java.util.*;
import static java.util.ResourceBundle.Control.*;
...
ResourceBundle bundle =
ResourceBundle.getBundle("MyResources", new Locale("fr", "CH"),
ResourceBundle.Control.getControl(FORMAT_PROPERTIES));
ResourceBundle.getBundleの説明の例のリソース バンドルを考えると、このResourceBundle.getBundle呼び出しは、親がMyResources_fr_CH.propertiesMyResources_fr.properties親を持つMyResources.propertiesを読み込みます。 (MyResources_fr_CH.properties は非表示ではありませんが、 MyResources_fr_CH.class です)。
<b>Example 2</b>
Properties#loadFromXML(java.io.InputStream) Properties.loadFromXMLを使用して XML ベースのバンドルを読み込む例を次に示します。
ResourceBundle rb = ResourceBundle.getBundle("Messages",
new ResourceBundle.Control() {
public List<String> getFormats(String baseName) {
if (baseName == null)
throw new NullPointerException();
return Arrays.asList("xml");
}
public ResourceBundle newBundle(String baseName,
Locale locale,
String format,
ClassLoader loader,
boolean reload)
throws IllegalAccessException,
InstantiationException,
IOException {
if (baseName == null || locale == null
|| format == null || loader == null)
throw new NullPointerException();
ResourceBundle bundle = null;
if (format.equals("xml")) {
String bundleName = toBundleName(baseName, locale);
String resourceName = toResourceName(bundleName, format);
InputStream stream = null;
if (reload) {
URL url = loader.getResource(resourceName);
if (url != null) {
URLConnection connection = url.openConnection();
if (connection != null) {
// Disable caches to get fresh data for
// reloading.
connection.setUseCaches(false);
stream = connection.getInputStream();
}
}
} else {
stream = loader.getResourceAsStream(resourceName);
}
if (stream != null) {
BufferedInputStream bis = new BufferedInputStream(stream);
bundle = new XMLResourceBundle(bis);
bis.close();
}
}
return bundle;
}
});
...
private static class XMLResourceBundle extends ResourceBundle {
private Properties props;
XMLResourceBundle(InputStream stream) throws IOException {
props = new Properties();
props.loadFromXML(stream);
}
protected Object handleGetObject(String key) {
return props.getProperty(key);
}
public Enumeration<String> getKeys() {
...
}
}
1.6 で追加されました。
java.util.ResourceBundle.Controlの Java ドキュメント。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| ResourceBundle.Control() |
唯一のコンストラクター。 |
| ResourceBundle.Control(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
フィールド
| 名前 | 説明 |
|---|---|
| TtlDontCache |
読み込まれたリソース バンドル インスタンスをキャッシュしない場合の Time to Live 定数。 |
| TtlNoExpirationControl |
キャッシュに読み込まれたリソース バンドル インスタンスの有効期限コントロールを無効にするための有効期間定数。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| FormatClass |
クラス専用の形式 |
| FormatDefault |
既定の形式 |
| FormatProperties |
プロパティのみの形式 |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
| 名前 | 説明 |
|---|---|
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| GetCandidateLocales(String, Locale) |
|
| GetControl(IList<String>) |
|
| GetFallbackLocale(String, Locale) |
|
| GetFormats(String) |
指定した |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| GetNoFallbackControl(IList<String>) |
|
| GetTimeToLive(String, Locale) |
この |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| NeedsReload(String, Locale, String, ClassLoader, ResourceBundle, Int64) |
キャッシュ内の期限切れの |
| NewBundle(String, Locale, String, ClassLoader, Boolean) |
必要に応じて、指定されたクラス ローダーを使用して、指定された形式とロケールの特定のバンドル名のリソース バンドルをインスタンス化します。 |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToBundleName(String, Locale) |
指定した |
| ToResourceName(String, String) |
|
| ToString() |
オブジェクトの文字列表現を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Object) |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|