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"
для первого вызова ResourceBundle.getBundle
и только "java.properties"
для второго вызова, то второй вызов вернет метод на основе класса, который был кэширован во время первого вызова.
Экземпляр ResourceBundle.Control
должен быть потокобезопасн, если он одновременно используется несколькими потоками. ResourceBundle.getBundle
не синхронизируется для вызова ResourceBundle.Control
методов . Реализация методов по умолчанию является потокобезопасной.
Приложения могут указывать ResourceBundle.Control
экземпляры, возвращаемые getControl
фабричных методов или созданные из подкласса ResourceBundle.Control
, для настройки процесса загрузки пакета. Ниже приведены примеры изменения процесса загрузки пакета по умолчанию.
<b>Пример 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
имеет значение .)
<b>Пример 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
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.
Конструкторы
ResourceBundle.Control() |
Конструктор Sole. |
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) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> 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) |
|