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 von den ResourceBundle#getBundle(String,
Locale, ClassLoader, Control) ResourceBundle.getBundle
Factorymethoden während des Ladevorgangs des Bundles 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 von den ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle
Factorymethoden während des Ladevorgangs des Bundles aufgerufen werden. Anders ausgedrückt: Ein ResourceBundle.Control
arbeitet mit den Factorymethoden zum Laden von Ressourcenbündeln zusammen. 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
in erster Linie zur Vereinfachung bei der Implementierung der Rückrufmethoden definiert. Die -Methode kann jedoch überschrieben werden, toBundleName
um unterschiedliche Konventionen in der organization und Verpackung lokalisierter Ressourcen bereitzustellen. Die toResourceName
Methode besteht darin final
, die Verwendung falscher Ressourcen- und Klassennamentrennzeichen zu vermeiden.
Zwei Factorymethoden und #getNoFallbackControl(List)
stellen Instanzen bereitResourceBundle.Control
, #getControl(List)
die allgemeine Variationen des Standardpaketladeprozesses implementieren.
Die von der Methode zurückgegebenen Formate und von der Control#getFormats(String) getFormats
Methode zurückgegebenen Gebietsschemas für Kandidaten ResourceBundle.Control#getCandidateLocales(String, Locale) getCandidateLocales
müssen in allen ResourceBundle.getBundle
Aufrufen für dasselbe Basispaket konsistent sein. Andernfalls können die ResourceBundle.getBundle
Methoden unbeabsichtigte Bündel zurückgeben. Wenn beispielsweise nur "java.class"
von der -Methode für den getFormats
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.
Ein ResourceBundle.Control
instance muss threadsicher sein, wenn er gleichzeitig von mehreren Threads 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 von erstellt werden, um den Ladevorgang des ResourceBundle.Control
Bundles anzupassen. Im Folgenden werden Beispiele für das Ändern des standardmäßigen Ladevorgangs für Bündel aufgeführt.
<b>Beispiel 1</b>
Mit dem folgenden Code können ResourceBundle.getBundle
nur eigenschaftenbasierte Ressourcen gesucht werden.
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 wird dieser ResourceBundle.getBundle
Aufruf geladen MyResources_fr_CH.properties
, dessen übergeordnetes Element das übergeordnete Element ist MyResources_fr.properties
MyResources.properties
. (MyResources_fr_CH.properties
ist nicht ausgeblendet, aber MyResources_fr_CH.class
ist.)
<b>Beispiel 2</b>
Im Folgenden finden Sie ein Beispiel für das Laden von XML-basierten Bundles mit Properties#loadFromXML(java.io.InputStream) Properties.loadFromXML
.
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 Version 1.6 hinzugefügt.
Java-Dokumentation für java.util.ResourceBundle.Control
.
Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
ResourceBundle.Control() |
Einziger Konstruktor. |
ResourceBundle.Control(IntPtr, JniHandleOwnership) |
Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Runtime aufgerufen. |
Felder
TtlDontCache |
Die Time-to-Live-Konstante für geladene Ressourcenpaketinstanzen, die nicht zwischengespeichert werden. |
TtlNoExpirationControl |
Die Time-to-Live-Konstante zum Deaktivieren der Ablaufsteuerung für geladene Ressourcenpaketinstanzen im Cache. |
Eigenschaften
Class |
Gibt die Laufzeitklasse dieses |
FormatClass |
Das Klassenformat |
FormatDefault |
Das Standardformat |
FormatProperties |
Das Nur-Eigenschaftenformat |
Handle |
Das Handle für die zugrunde liegende Android-instance. (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 einen |
GetControl(IList<String>) |
|
GetFallbackLocale(String, Locale) |
Gibt einen |
GetFormats(String) |
Gibt eine |
GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
GetNoFallbackControl(IList<String>) |
|
GetTimeToLive(String, Locale) |
Gibt den Wert für die Gültigkeitsdauer (Time-to-Live, TTL) für Ressourcenbündel zurück, die unter dieser |
JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind. (Geerbt von Object) |
NeedsReload(String, Locale, String, ClassLoader, ResourceBundle, Int64) |
Bestimmt, ob das |
NewBundle(String, Locale, String, ClassLoader, Boolean) |
Instanziiert ein Ressourcenpaket für den angegebenen Paketnamen des angegebenen Formats und Gebietsschemas, wobei bei Bedarf das angegebene Klassenladeprogramm verwendet wird. |
Notify() |
Aktiviert einen einzelnen Thread, der auf den Monitor dieses Objekts wartet. (Geerbt von Object) |
NotifyAll() |
Aktiviert alle Threads, die auf den Monitor dieses Objekts warten. (Geerbt von Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
ToArray<T>() |
|
ToBundleName(String, Locale) |
Konvertiert das angegebene |
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 aktiviert ist, in der Regel durch <>Benachrichtigung</em> oder <em>interrupted</em>. (Geerbt von Object) |
Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert ist, in der Regel durch>< Benachrichtigung</em> oder <em>interrupted</em>, oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert ist, in der Regel durch>< Benachrichtigung</em> oder <em>interrupted</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 Typkonvertierung mit Überprüfung der Android-Laufzeit aus. |
JavaCast<TResult>(IJavaObject) |
|
GetJniTypeName(IJavaPeerable) |
|