ResourceBundle.Control Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
ResourceBundle.Control
definiert eine Reihe von Rückrufmethoden, die während des Ladens des Bundles von den ResourceBundle#getBundle(String,
Locale, ClassLoader, Control) ResourceBundle.getBundle
Factorymethoden aufgerufen werden.
[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
- Vererbung
- Attribute
Hinweise
ResourceBundle.Control
definiert eine Reihe von Rückrufmethoden, die während des Ladens des Bundles von den ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle
Factorymethoden aufgerufen werden. Mit anderen Worten, eine ResourceBundle.Control
Zusammenarbeit mit den Factorymethoden zum Laden von Ressourcenbündeln. Die Standardimplementierung der Rückrufmethoden stellt die informationen bereit, die für die Factorymethoden erforderlich sind, um das Standardverhalten auszuführen.
Zusätzlich zu den Rückrufmethoden werden die #toBundleName(String, Locale) toBundleName
Methoden und #toResourceName(String, String) toResourceName
Methoden in erster Linie zur Vereinfachung der Implementierung der Rückrufmethoden definiert. Die Methode kann jedoch außer Kraft gesetzt werden, toBundleName
um unterschiedliche Konventionen in der Organisation und verpackung lokalisierter Ressourcen bereitzustellen. Die toResourceName
Methode besteht final
darin, falsche Ressourcen- und Klassennamentrennzeichen zu vermeiden.
Zwei Factorymethoden und #getNoFallbackControl(List)
, stellen Instanzen bereitResourceBundle.Control
, #getControl(List)
die allgemeine Variationen des Standardpaketladevorgangs implementieren.
Die von der Control#getFormats(String) getFormats
Methode zurückgegebenen Formate und kandidatengebietsschemas, die von der ResourceBundle.Control#getCandidateLocales(String, Locale) getCandidateLocales
Methode zurückgegeben werden, müssen in allen ResourceBundle.getBundle
Aufrufen für dasselbe Basispaket konsistent sein. Andernfalls geben die ResourceBundle.getBundle
Methoden möglicherweise unbeabsichtigte Bündel zurück. Wenn beispielsweise nur "java.class"
die getFormats
Methode für den ersten Aufruf ResourceBundle.getBundle
und nur "java.properties"
für den zweiten Aufruf zurückgegeben wird, gibt der zweite Aufruf den klassenbasierten Aufruf zurück, der während des ersten Aufrufs zwischengespeichert wurde.
Eine ResourceBundle.Control
Instanz muss threadsicher sein, wenn sie von mehreren Threads gleichzeitig verwendet wird. ResourceBundle.getBundle
wird nicht synchronisiert, um die ResourceBundle.Control
Methoden aufzurufen. Die Standardimplementierungen der Methoden sind threadsicher.
Anwendungen können Instanzen angeben ResourceBundle.Control
, die von den getControl
Factorymethoden zurückgegeben oder aus einer Unterklasse ResourceBundle.Control
zum Anpassen des Bundleladevorgangs erstellt wurden. Im Folgenden sind Beispiele zum Ändern des Standardmäßigen Ladevorgangs des Bundles aufgeführt.
<b>Beispiel 1</b>
Mit dem folgenden Code können ResourceBundle.getBundle
nur eigenschaftenbasierte Ressourcen nachschlagen.
import java.util.*;
import static java.util.ResourceBundle.Control.*;
...
ResourceBundle bundle =
ResourceBundle.getBundle("MyResources", new Locale("fr", "CH"),
ResourceBundle.Control.getControl(FORMAT_PROPERTIES));
Angesichts der Ressourcenbündel im Beispiel in der ResourceBundle.getBundle
Beschreibung lädt MyResources_fr_CH.properties
dieser ResourceBundle.getBundle
Aufruf, dessen übergeordnetes Element das übergeordnete Element istMyResources.properties
MyResources_fr.properties
. (MyResources_fr_CH.properties
ist nicht ausgeblendet, aber MyResources_fr_CH.class
ist.)
<b>Beispiel 2</b>
Im Folgenden sehen Sie ein Beispiel für das Laden von XML-basierten Bündeln mithilfe Properties#loadFromXML(java.io.InputStream) Properties.loadFromXML
von .
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() {
...
}
}
In 1.6 hinzugefügt.
Java-Dokumentation für java.util.ResourceBundle.Control
.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
ResourceBundle.Control() |
Alleiniger Konstruktor. |
ResourceBundle.Control(IntPtr, JniHandleOwnership) |
Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen. |
Felder
TtlDontCache |
Die Zeit-zu-Live-Konstante für nicht zwischenspeichern geladene Ressourcenbundleinstanzen. |
TtlNoExpirationControl |
Die Zeit-zu-Live-Konstante zum Deaktivieren des Ablaufsteuerelements für geladene Ressourcenbundleinstanzen im Cache. |
Eigenschaften
Class |
Gibt die Laufzeitklasse dieses Werts |
FormatClass |
Das Nur-Klassenformat |
FormatDefault |
Das Standardformat |
FormatProperties |
Das Nur-Eigenschaften-Format |
Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
JniIdentityHashCode |
|
JniPeerMembers |
|
PeerReference |
|
ThresholdClass |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |
ThresholdType |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |
Methoden
Clone() |
Erstellt und gibt eine Kopie dieses Objekts zurück. (Geerbt von Object) |
Dispose() |
|
Dispose(Boolean) |
|
Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
GetCandidateLocales(String, Locale) |
Gibt eins |
GetControl(IList<String>) |
|
GetFallbackLocale(String, Locale) |
Gibt ein |
GetFormats(String) |
Gibt einen |
GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
GetNoFallbackControl(IList<String>) |
|
GetTimeToLive(String, Locale) |
Gibt den Time-to-Live-Wert (TTL) für Ressourcenbündel zurück, die unter diesem |
JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
NeedsReload(String, Locale, String, ClassLoader, ResourceBundle, Int64) |
Bestimmt, ob der abgelaufene |
NewBundle(String, Locale, String, ClassLoader, Boolean) |
Instanziiert ein Ressourcenbundle für den angegebenen Bündelnamen des angegebenen Formats und Gebietsschemas, wobei das angegebene Klassenladeprogramm bei Bedarf verwendet wird. |
Notify() |
Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet. (Geerbt von Object) |
NotifyAll() |
Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten. (Geerbt von Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
ToArray<T>() |
|
ToBundleName(String, Locale) |
Wandelt den angegebenen |
ToResourceName(String, String) |
Konvertiert das angegebene |
ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
UnregisterFromRuntime() |
|
Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em> oder <em>unterbrochen</em>.<>< (Geerbt von Object) |
Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
IJavaPeerable.Disposed() |
|
IJavaPeerable.DisposeUnlessReferenced() |
|
IJavaPeerable.Finalized() |
|
IJavaPeerable.JniManagedPeerState |
|
IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
IJavaPeerable.SetPeerReference(JniObjectReference) |
|
Erweiterungsmethoden
JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
JavaCast<TResult>(IJavaObject) |
|
GetJniTypeName(IJavaPeerable) |
|