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
В противном случае методы могут возвращать непреднамеренные пакеты. Например, если метод возвращает getFormats
только "java.class"
для первого вызова и только "java.properties"
для второго вызоваResourceBundle.getBundle
, второй вызов возвращает кэшированный во время первого вызова.
Экземпляр 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
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
ResourceBundle.Control() |
Конструктор единственного. |
ResourceBundle.Control(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Поля
TtlDontCache |
Константы времени в реальном времени для не кэширования загруженных экземпляров пакета ресурсов. |
TtlNoExpirationControl |
Константы времени в реальном времени для отключения элемента управления сроком действия для загруженных экземпляров пакета ресурсов в кэше. |
Свойства
Class |
Возвращает класс среды выполнения этого |
FormatClass |
Формат |
FormatDefault |
Формат |
FormatProperties |
Формат |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
JniIdentityHashCode |
|
JniPeerMembers |
|
PeerReference |
|
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
Dispose() |
|
Dispose(Boolean) |
|
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) |
ToArray<T>() |
|
ToBundleName(String, Locale) |
Преобразует заданное |
ToResourceName(String, String) |
Преобразует заданный |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
|
Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
|
IJavaPeerable.DisposeUnlessReferenced() |
|
IJavaPeerable.Finalized() |
|
IJavaPeerable.JniManagedPeerState |
|
IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
IJavaPeerable.SetPeerReference(JniObjectReference) |
|
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
|
GetJniTypeName(IJavaPeerable) |
|