ResourceBundle.Control Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
ResourceBundle.Control
definisce un set di metodi di callback richiamati dai ResourceBundle#getBundle(String,
Locale, ClassLoader, Control) ResourceBundle.getBundle
metodi factory durante il processo di caricamento del bundle.
[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
- Ereditarietà
- Attributi
Commenti
ResourceBundle.Control
definisce un set di metodi di callback richiamati dai ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle
metodi factory durante il processo di caricamento del bundle. In altre parole, un oggetto ResourceBundle.Control
collabora con i metodi factory per caricare i bundle di risorse. L'implementazione predefinita dei metodi di callback fornisce le informazioni necessarie per i metodi factory per eseguire il comportamento predefinito.
Oltre ai metodi di callback, i #toBundleName(String, Locale) toBundleName
metodi e #toResourceName(String, String) toResourceName
vengono definiti principalmente per praticità nell'implementazione dei metodi di callback. Tuttavia, è possibile eseguire l'override del toBundleName
metodo per fornire convenzioni diverse nell'organizzazione e la creazione di pacchetti di risorse localizzate. Il toResourceName
metodo consiste final
nell'evitare l'uso di separatori di risorse e nomi di classe errati.
Due metodi #getControl(List)
factory e #getNoFallbackControl(List)
, forniscono ResourceBundle.Control
istanze che implementano varianti comuni del processo di caricamento del bundle predefinito.
I formati restituiti dalle Control#getFormats(String) getFormats
impostazioni locali del metodo e dei candidati restituiti dal ResourceBundle.Control#getCandidateLocales(String, Locale) getCandidateLocales
metodo devono essere coerenti in tutte le ResourceBundle.getBundle
chiamate per lo stesso bundle di base. In caso contrario, i ResourceBundle.getBundle
metodi possono restituire bundle imprevisti. Ad esempio, se viene restituito solo "java.class"
dal getFormats
metodo per la prima chiamata a ResourceBundle.getBundle
e solo "java.properties"
per la seconda chiamata, la seconda chiamata restituirà quella basata sulla classe memorizzata nella cache durante la prima chiamata.
Un'istanza ResourceBundle.Control
deve essere thread-safe se viene usata contemporaneamente da più thread. ResourceBundle.getBundle
non esegue la sincronizzazione per chiamare i ResourceBundle.Control
metodi. Le implementazioni predefinite dei metodi sono thread-safe.
Le applicazioni possono specificare ResourceBundle.Control
istanze restituite dai getControl
metodi factory o create da una sottoclasse di ResourceBundle.Control
per personalizzare il processo di caricamento del bundle. Di seguito sono riportati esempi di modifica del processo di caricamento del bundle predefinito.
<b>Esempio 1</b>
Il codice seguente consente di ResourceBundle.getBundle
cercare solo le risorse basate sulle proprietà.
import java.util.*;
import static java.util.ResourceBundle.Control.*;
...
ResourceBundle bundle =
ResourceBundle.getBundle("MyResources", new Locale("fr", "CH"),
ResourceBundle.Control.getControl(FORMAT_PROPERTIES));
Dato che i bundle di risorse nell'esempio nella ResourceBundle.getBundle
descrizione, questa ResourceBundle.getBundle
chiamata carica MyResources_fr_CH.properties
il cui padre è il cui padre è MyResources_fr.properties
MyResources.properties
. (MyResources_fr_CH.properties
non è nascosto, ma MyResources_fr_CH.class
è.
<b>Esempio 2</b>
Di seguito è riportato un esempio di caricamento di bundle basati su XML tramite 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() {
...
}
}
Aggiunta nella versione 1.6.
Documentazione java per java.util.ResourceBundle.Control
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Costruttori
ResourceBundle.Control() |
Solo costruttore. |
ResourceBundle.Control(IntPtr, JniHandleOwnership) |
Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
Campi
TtlDontCache |
Costante time-to-live per non memorizzare nella cache le istanze del bundle di risorse caricate. |
TtlNoExpirationControl |
Costante time-to-live per disabilitare il controllo di scadenza per le istanze del bundle di risorse caricate nella cache. |
Proprietà
Class |
Restituisce la classe di runtime di questo |
FormatClass |
Formato |
FormatDefault |
Formato predefinito |
FormatProperties |
Formato |
Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
JniIdentityHashCode |
|
JniPeerMembers |
|
PeerReference |
|
ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
Metodi
Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
Dispose() |
|
Dispose(Boolean) |
|
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
GetCandidateLocales(String, Locale) |
Restituisce un |
GetControl(IList<String>) |
|
GetFallbackLocale(String, Locale) |
Restituisce un |
GetFormats(String) |
Restituisce un |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
GetNoFallbackControl(IList<String>) |
|
GetTimeToLive(String, Locale) |
Restituisce il valore TTL (Time-to-Live) per i bundle di risorse caricati in questo |
JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
NeedsReload(String, Locale, String, ClassLoader, ResourceBundle, Int64) |
Determina se l'oggetto scaduto |
NewBundle(String, Locale, String, ClassLoader, Boolean) |
Crea un'istanza di un bundle di risorse per il nome del bundle specificato del formato e delle impostazioni locali specificati, usando il caricatore di classi specificato, se necessario. |
Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
ToArray<T>() |
|
ToBundleName(String, Locale) |
Converte il valore specificato |
ToResourceName(String, String) |
Converte l'oggetto specificato |
ToString() |
Restituisce una rappresentazione di stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
|
Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IJavaPeerable.Disposed() |
|
IJavaPeerable.DisposeUnlessReferenced() |
|
IJavaPeerable.Finalized() |
|
IJavaPeerable.JniManagedPeerState |
|
IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
IJavaPeerable.SetPeerReference(JniObjectReference) |
|
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
|
GetJniTypeName(IJavaPeerable) |
|