ResourceBundle.Control Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
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)предоставляют ResourceBundle.Control экземпляры, реализующие распространенные варианты процесса загрузки пакета по умолчанию.
Форматы, возвращаемые методом Control#getFormats(String) getFormats и языковыми стандартами кандидатов, возвращаемыми ResourceBundle.Control#getCandidateLocales(String, Locale) getCandidateLocales методом, должны быть согласованы во всех ResourceBundle.getBundle вызовах для одного базового пакета.
ResourceBundle.getBundle В противном случае методы могут возвращать непреднамеренные пакеты. Например, если метод возвращает "java.class" только getFormats для первого вызова и только ResourceBundle.getBundle для второго вызова"java.properties", второй вызов возвращает кэшированный во время первого вызова.
Экземпляр ResourceBundle.Control должен быть потокобезопасн, если он одновременно используется несколькими потоками.
ResourceBundle.getBundle не синхронизируется с вызовом ResourceBundle.Control методов. Реализация методов по умолчанию является потокобезопасной.
Приложения могут указывать ResourceBundle.Control экземпляры, возвращаемые getControl методами фабрики или созданными из подкласса ResourceBundle.Control для настройки процесса загрузки пакета. Ниже приведены примеры изменения процесса загрузки пакета по умолчанию.
<Пример>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.properties родительский объект, родительский объект которого является MyResources_fr.properties родительским MyResources.properties. (MyResources_fr_CH.properties не скрыт, но MyResources_fr_CH.class есть.)
<Пример>2</b>
Ниже приведен пример загрузки пакетов на основе XML с помощью 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() {
...
}
}
Добавлено в версии 1.6.
Документация по Java для java.util.ResourceBundle.Control.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя. | Описание |
|---|---|
| ResourceBundle.Control() |
Конструктор единственного. |
| ResourceBundle.Control(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Поля
| Имя. | Описание |
|---|---|
| TtlDontCache |
Константы времени в реальном времени для не кэширования загруженных экземпляров пакета ресурсов. |
| TtlNoExpirationControl |
Константы времени в реальном времени для отключения элемента управления сроком действия для загруженных экземпляров пакета ресурсов в кэше. |
Свойства
| Имя. | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| FormatClass |
Формат |
| FormatDefault |
Формат |
| FormatProperties |
Формат |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя. | Описание |
|---|---|
| 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) |
Возвращает значение времени в реальном времени (TTL) для пакетов ресурсов, загруженных в этот |
| JavaFinalize() |
Устаревшие.
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| NeedsReload(String, Locale, String, ClassLoader, ResourceBundle, Int64) |
Определяет, нужно ли перезагрузить истекший |
| NewBundle(String, Locale, String, ClassLoader, Boolean) |
Создает экземпляр пакета ресурсов для заданного имени пакета заданного формата и языкового стандарта, используя загрузчик заданного класса при необходимости. |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от 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 или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя. | Описание |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |