|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class ResourceBundle extends Object
String например, Ваша программа может загрузить это из пакета ресурса, который является подходящим для локали текущего пользователя. Таким образом можно записать код программы, который в значительной степени независим от локали пользователя, изолирующей больше всего, если не все, специфичной для локали информации в ресурсе связываются. Это позволяет Вам писать программы, которые могут:
Пакеты ресурса принадлежат семействам, элементы которых совместно используют общее базовое имя, но у чьих имен также есть дополнительные компоненты, которые идентифицируют их локали. Например, базовое имя семейства пакетов ресурса могло бы быть "MyResources". У семейства должен быть пакет ресурса значения по умолчанию, который просто имеет то же самое имя как его семейство - "MyResources" - и будет использоваться в качестве пакета последней инстанции, если определенная локаль не поддерживается. Семейство может тогда обеспечить так много специфичных для локали элементов как необходимый, например немецкий по имени "MyResources_de".
Каждый пакет ресурса в семействе содержит те же самые элементы, но элементы были преобразованы для локали, представленной тем пакетом ресурса. Например, у и "MyResources" и "MyResources_de" может быть a String это используется на кнопке для того, чтобы отменить операции. В "MyResources" String может содержать "Отмену", и в "MyResources_de" она может содержать "Abbrechen".
Если есть различные ресурсы для разных стран, можно сделать специализации: например, "MyResources_de_CH" содержит объекты для немецкого языка (de) в Швейцарии (CH). Если Вы хотите только изменить некоторые из ресурсов в специализации, можно сделать так.
Когда Ваша программа нуждается в специфичном для локали объекте, она загружается ResourceBundle class используя getBundle метод:
ResourceBundle myResources =
ResourceBundle.getBundle("MyResources", currentLocale);
Пакеты ресурса содержат пары ключ/значение. Ключи однозначно определяют специфичный для локали объект в пакете. Вот пример a ListResourceBundle это содержит две пары ключ/значение:
public class MyResources extends ListResourceBundle {
protected Object[][] getContents() {
return new Object[][] {
// LOCALIZE THE SECOND STRING OF EACH ARRAY (e.g., "OK")
{"OkKey", "OK"},
{"CancelKey", "Cancel"},
// END OF MATERIAL TO LOCALIZE
};
}
}
Ключи всегда Strings. В этом примере ключи являются "OkKey" и "CancelKey". В вышеупомянутом примере значения также Strings - "OK" и "Отмена" - но они не должны быть. Значения могут быть любым типом объекта. Вы получаете объект от пакета ресурса, используя соответствующий метод метода get. Поскольку "OkKey" и "CancelKey" являются оба строками, Вы использовали бы getString получать их:
button1 = new Button(myResources.getString("OkKey"));
button2 = new Button(myResources.getString("CancelKey"));
Методы метода get все требуют ключа как параметра и возвращают объект если найдено. Если объект не находится, метод метода get бросает a MissingResourceException. Кроме того getString, ResourceBundle также обеспечивает метод для того, чтобы он получил строковые массивы, getStringArray, так же как обобщение getObject метод для любого другого типа объекта. При использовании getObject, необходимо бросить результат к соответствующему типу. Например:
int[] myIntegers = (int[]) myResources.getObject("intList");
Платформа Java обеспечивает два подкласса ResourceBundle, ListResourceBundle и PropertyResourceBundle, это обеспечивает довольно простой способ создать ресурсы. Поскольку Вы видели кратко в предыдущем примере, ListResourceBundle управляет его ресурсом как списком пар ключ/значение. PropertyResourceBundle использует файл свойств, чтобы управлять его ресурсами.
Если ListResourceBundle или PropertyResourceBundle не удовлетворяйте своим потребностям, можно записать свое собственное ResourceBundle подкласс. Ваши подклассы должны переопределить два метода: handleGetObject и getKeys().
ResourceBundle.Control class предоставляет информацию, необходимую, чтобы выполнить процесс загрузки пакета getBundle методы фабрики, которые берут a ResourceBundle.Control экземпляр. Можно реализовать свой собственный подкласс, чтобы включить нестандартным форматам пакета ресурса, изменить стратегию поиска, или определить кэширующиеся параметры. Сошлитесь на описания class и getBundle метод фабрики для деталей. Для getBundle методы фабрики, которые берут нет ResourceBundle.Control экземпляр, их поведение значения по умолчанию загрузки пакета ресурса может быть изменено с установленным ResourceBundleControlProvider реализации. Любые установленные провайдеры обнаруживаются в ResourceBundle Время загрузки class. Если какой-либо из провайдеров обеспечивает a ResourceBundle.Control для данного базового имени, этого ResourceBundle.Control будет использоваться вместо значения по умолчанию ResourceBundle.Control. Если есть больше чем один поставщик услуг, установленный для того, чтобы поддерживать то же самое базовое имя, первый, возвращенный из ServiceLoader будет использоваться.
getBundle методы фабрики кэшируются по умолчанию, и методы фабрики возвращают тот же самый экземпляр пакета ресурса многократно, если он кэшировался. getBundle клиенты могут очистить кэш, управлять временем жизни кэшируемых экземпляров пакета ресурса, использующих значения времени-к-живому, или определить не к экземплярам пакета ресурса кэша. Сошлитесь на описания getBundle метод фабрики, clearCache, ResourceBundle.Control.getTimeToLive, и ResourceBundle.Control.needsReload для деталей. ResourceBundle подкласс, MyResources, это управляет двумя ресурсами (для большего числа ресурсов, Вы, вероятно, использовали бы a Map). Заметьте, что Вы не должны предоставить значение если "на родительском уровне" ResourceBundle обрабатывает тот же самый ключ с тем же самым значением (что касается okKey ниже).
// default (English language, United States)
public class MyResources extends ResourceBundle {
public Object handleGetObject(String key) {
if (key.equals("okKey")) return "Ok";
if (key.equals("cancelKey")) return "Cancel";
return null;
}
public Enumeration<String> getKeys() {
return Collections.enumeration(keySet());
}
// Overrides handleKeySet() so that the getKeys() implementation
// can rely on the keySet() value.
protected Set<String> handleKeySet() {
return new HashSet<String>(Arrays.asList("okKey", "cancelKey"));
}
}
// German language
public class MyResources_de extends MyResources {
public Object handleGetObject(String key) {
// don't need okKey, since parent level handles it.
if (key.equals("cancelKey")) return "Abbrechen";
return null;
}
protected Set<String> handleKeySet() {
return new HashSet<String>(Arrays.asList("cancelKey"));
}
}
Вы не должны ограничить себя использованием единственного семейства ResourceBundles. Например, у Вас мог быть ряд пакетов для сообщений об исключительной ситуации, ExceptionResources (ExceptionResources_fr, ExceptionResources_de...), и один для виджетов, WidgetResource (WidgetResources_fr, WidgetResources_de...); разбивая ресурсы однако Вам нравится.ListResourceBundle, PropertyResourceBundle, MissingResourceException| Модификатор и Тип | Класс и Описание |
|---|---|
static class |
ResourceBundle. Управление
ResourceBundle.Control определяет ряд методов обратного вызова, которые вызываются ResourceBundle.getBundle методы фабрики во время процесса загрузки пакета. |
| Модификатор и Тип | Поле и Описание |
|---|---|
protected ResourceBundle |
родитель
Родительский пакет этого пакета.
|
| Конструктор и Описание |
|---|
ResourceBundle()
Единственный конструктор.
|
| Модификатор и Тип | Метод и Описание |
|---|---|
static void |
clearCache()
Удаляет все пакеты ресурса из кэша, которые были загружены, используя загрузчик class вызывающей стороны.
|
static void |
clearCache(ClassLoader loader)
Удаляет все пакеты ресурса из кэша, которые были загружены, используя данный загрузчик class.
|
boolean |
containsKey(String key)
Определяет ли данный
key содержится в этом ResourceBundle или его родительские пакеты. |
static ResourceBundle |
getBundle(String baseName)
Получает пакет ресурса, используя указанное базовое имя, локаль значения по умолчанию, и загрузчик class вызывающей стороны.
|
static ResourceBundle |
getBundle(String baseName, Locale locale)
Получает пакет ресурса, используя указанное базовое имя и локаль, и загрузчик class вызывающей стороны.
|
static ResourceBundle |
getBundle(String baseName, Locale locale, ClassLoader loader)
Получает пакет ресурса, используя указанное базовое имя, локаль, и загрузчик class.
|
static ResourceBundle |
getBundle(String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control)
Возвращает пакет ресурса, используя указанное базовое имя, целевую локаль, загрузчик class и управление.
|
static ResourceBundle |
getBundle(String baseName, Locale targetLocale, ResourceBundle.Control control)
Возвращает пакет ресурса, используя указанное базовое имя, целевую локаль и управление, и загрузчик class вызывающей стороны.
|
static ResourceBundle |
getBundle(String baseName, ResourceBundle.Control control)
Возвращает пакет ресурса, используя указанное базовое имя, локаль значения по умолчанию и указанное управление.
|
abstract Enumeration<String> |
getKeys()
Возвращает перечисление ключей.
|
Локаль |
getLocale()
Возвращает локаль этого пакета ресурса.
|
Объект |
getObject(String key)
Получает объект для данного ключа от этого пакета ресурса или одного из его родителей.
|
Строка |
getString(String key)
Получает строку для данного ключа от этого пакета ресурса или одного из его родителей.
|
Строка[] |
getStringArray(String key)
Получает строковый массив для данного ключа от этого пакета ресурса или одного из его родителей.
|
protected abstract Object |
handleGetObject(String key)
Получает объект для данного ключа от этого пакета ресурса.
|
protected Set<String> |
handleKeySet()
Возвраты a
Set из ключей, содержавшихся только в этом ResourceBundle. |
Set<String> |
keySet()
Возвраты a
Set из всех ключей, содержавшихся в этом ResourceBundle и его родительские пакеты. |
protected void |
setParent(ResourceBundle parent)
Устанавливает родительский пакет этого пакета.
|
protected ResourceBundle parent
getObject когда этот пакет не содержит определенный ресурс.public ResourceBundle()
public final String getString(String key)
(String) getObject(key). key - ключ для требуемой строкиNullPointerException - если key nullMissingResourceException - если никакой объект для данного ключа не может быть найденClassCastException - если объект, найденный для данного ключа, не является строкойpublic final String[] getStringArray(String key)
(String[]) getObject(key). key - ключ для требуемого строкового массиваNullPointerException - если key nullMissingResourceException - если никакой объект для данного ключа не может быть найденClassCastException - если объект, найденный для данного ключа, не является строковым массивомpublic final Object getObject(String key)
handleGetObject. Если не успешный, и родительский пакет ресурса не нуль, он вызывает родителя getObject метод. Если все еще успешный, это не бросает MissingResourceException.key - ключ для требуемого объектаNullPointerException - если key nullMissingResourceException - если никакой объект для данного ключа не может быть найденpublic Locale getLocale()
protected void setParent(ResourceBundle parent)
getObject когда этот пакет не содержит определенный ресурс.parent - родительский пакет этого пакета.public static final ResourceBundle getBundle(String baseName)
getBundle(baseName, Locale.getDefault(), this.getClass().getClassLoader()), за исключением того, что getClassLoader() выполняется с полномочиями безопасности ResourceBundle. См. getBundle для полного описания стратегии поиска и инстанцирования.baseName - базовое имя пакета ресурса, полностью определенного имени classNullPointerException - если baseName nullMissingResourceException - если никакой пакет ресурса для указанного базового имени не может быть найденpublic static final ResourceBundle getBundle(String baseName, ResourceBundle.Control control)
getBundle(baseName, Locale.getDefault(),
this.getClass().getClassLoader(), control),
за исключением того, что getClassLoader() выполняется с полномочиями безопасности ResourceBundle. См. getBundle поскольку полное описание ресурса связывает процесс загрузки a ResourceBundle.Control.baseName - базовое имя пакета ресурса, полностью определенного имени classcontrol - управление, которое дает информацию для ресурса, связывает процесс загрузкиNullPointerException - если baseName или control nullMissingResourceException - если никакой пакет ресурса для указанного базового имени не может быть найденIllegalArgumentException - если данный control не выполняет должным образом (например, control.getCandidateLocales нуль возвратов.) Отмечают ту проверку допустимости control выполняется как необходимый.public static final ResourceBundle getBundle(String baseName, Locale locale)
getBundle(baseName, locale, this.getClass().getClassLoader()), за исключением того, что getClassLoader() выполняется с полномочиями безопасности ResourceBundle. См. getBundle для полного описания стратегии поиска и инстанцирования.baseName - базовое имя пакета ресурса, полностью определенного имени classlocale - локаль, для которой требуется пакет ресурсаNullPointerException - если baseName или locale nullMissingResourceException - если никакой пакет ресурса для указанного базового имени не может быть найденpublic static final ResourceBundle getBundle(String baseName, Locale targetLocale, ResourceBundle.Control control)
getBundle(baseName, targetLocale, this.getClass().getClassLoader(),
control),
за исключением того, что getClassLoader() выполняется с полномочиями безопасности ResourceBundle. См. getBundle поскольку полное описание ресурса связывает процесс загрузки a ResourceBundle.Control.baseName - базовое имя пакета ресурса, полностью определенного имени classtargetLocale - локаль, для которой требуется пакет ресурсаcontrol - управление, которое дает информацию для ресурса, связывает процесс загрузкиLocale в localesNullPointerException - если baseName, locales или control nullMissingResourceException - если никакой пакет ресурса для указанного базового имени в любом из locales может быть найден.IllegalArgumentException - если данный control не выполняет должным образом (например, control.getCandidateLocales нуль возвратов.) Отмечают ту проверку допустимости control выполняется как необходимый.public static ResourceBundle getBundle(String baseName, Locale locale, ClassLoader loader)
Этот метод ведет себя то же самое как вызов getBundle(String, Locale, ClassLoader, Control) передача экземпляра по умолчанию ResourceBundle.Control если другой ResourceBundle.Control предоставляется ResourceBundleControlProvider SPI. Сошлитесь на описание изменения поведения значения по умолчанию.
Следующее описывает поведение значения по умолчанию.
getBundle использует базовое имя, указанную локаль, и локаль значения по умолчанию (полученный из Locale.getDefault) чтобы генерировать последовательность кандидата связывают имена. Если язык указанной локали, сценарий, страна, и разновидность являются всеми пустыми строками, то базовое имя является единственным именем пакета кандидата. Иначе, список локалей кандидата сгенерирован от значений атрибута указанной локали (язык, сценарий, страна и разновидность) и добавлен к базовому имени. Как правило, это будет похоже на следующее:
baseName + "_" + language + "_" + script + "_" + country + "_" + variant
baseName + "_" + language + "_" + script + "_" + country
baseName + "_" + language + "_" + script
baseName + "_" + language + "_" + country + "_" + variant
baseName + "_" + language + "_" + country
baseName + "_" + language
Пакет кандидата называет, где заключительный компонент является пустой строкой, опускаются, наряду с подчеркиванием. Например, если бы страна является пустой строкой, второе и пятый пакет кандидата ранее назвали, был бы опущен. Кроме того, если сценарий является пустой строкой, имена кандидата включая сценарий опускаются. Например, локаль с языком "de" и различным "JAVA" произведет имена кандидата с базовым именем "MyResource" ниже.
MyResource_de__JAVA
MyResource_de
В случае, что разновидность содержит одно или более подчеркиваний (' _ '), последовательность имен пакета, сгенерированных, усекая последнее подчеркивание и часть после него, вставляется после имени пакета кандидата с исходной разновидностью. Например, для локали с языком "en", сценарий "Latn, страна "US" и различный "WINDOWS_VISTA", и базовое имя пакета "MyResource", список имен пакета кандидата ниже сгенерирован: MyResource_en_Latn_US_WINDOWS_VISTA MyResource_en_Latn_US_WINDOWS MyResource_en_Latn_US MyResource_en_Latn MyResource_en_US_WINDOWS_VISTA MyResource_en_US_WINDOWS MyResource_en_US MyResource_en
Отметьте: Для некоторыхLocales, список имен пакета кандидата содержит дополнительные имена, или порядок имен пакета немного изменяется. См. описание реализации по умолчаниюgetCandidateLocalesдля деталей.
getBundle тогда выполняет итерации по именам пакета кандидата, чтобы найти первый, для которого это может инстанцировать фактического пакета ресурса. Это использует средства управления значением по умолчанию getFormats метод, который генерирует два имени пакета для каждого сгенерированного имени, первое имя class и второе имя файла свойств. Поскольку каждый кандидат связывает имя, оно пытается создать пакет ресурса:
getBundle создает новый экземпляр этого class и использует это в качестве пакета ресурса результата. getBundle попытки определить местоположение файла ресурсов свойства, используя сгенерированное имя файла свойств. Это генерирует путь с имени пакета кандидата, заменяя все "." символы "/" и добавляя строку ".properties". Это пытается найти "ресурс" с этим использованием имени ClassLoader.getResource. (Отметьте что "ресурс" в смысле getResource не имеет никакого отношения к содержанию пакета ресурса, это - только контейнер данных, таких как файл.), Если это находит "ресурс", это пытается создать новое PropertyResourceBundle экземпляр от его содержания. В случае успеха этот экземпляр становится пакетом ресурса результата. Это продолжается, пока пакет ресурса результата не инстанцируют, или список имен пакета кандидата исчерпывается. Если никакой пакет ресурса соответствия не находится, управление значением по умолчанию getFallbackLocale метод вызывают, который возвращает текущую локаль значения по умолчанию. Новая последовательность имен локали кандидата сгенерирована, используя эту локаль и и ищется снова, как выше.
Если все еще никакой пакет результата не находится, одно только базовое имя ищется. Если это все еще перестало работать, a MissingResourceException бросается.
Как только пакет ресурса результата был найден, его родительская цепочка инстанцируют. Если у пакета результата уже есть родитель (возможно, потому что он был возвращен из кэша), цепочка полна.
Иначе, getBundle исследует остаток от списка локали кандидата, который использовался во время передачи, которая генерировала пакет ресурса результата. (Как прежде, пакет кандидата называет, где заключительный компонент является пустой строкой, опускаются.) Когда дело доходит до конца списка кандидатов это пробует простое имя пакета. С каждым из имен пакета кандидата это пытается инстанцировать пакета ресурса (сначала ищущий class и затем файл свойств, как описано выше).
Всякий раз, когда это успешно выполняется, это вызывает ранее инстанцированный пакет ресурса setParent метод с новым пакетом ресурса. Это продолжается, пока список имен не исчерпывается, или у текущего пакета уже есть ненулевой родитель.
Как только родительская цепочка полна, пакет возвращается.
Отметьте: getBundle кэши инстанцированные пакеты ресурса и могли бы возвратить тот же самый экземпляр пакета ресурса многократно.
Note:The baseName параметром должно быть полностью определенное имя class. Однако, для совместимости с более ранними версиями, Java Sun Среды выполнения SE не проверяют это, и таким образом, это возможно к доступу PropertyResourceBundles, определяя путь (использующий "/") вместо полностью определенного имени class (использование ".").
Следующий class и файлы свойств обеспечиваются:
MyResources.class
MyResources.properties
MyResources_fr.properties
MyResources_fr_CH.class
MyResources_fr_CH.properties
MyResources_en.properties
MyResources_es_ES.class
Содержание всех файлов допустимо (то есть, общедоступные неабстрактные подклассы ResourceBundle для ".class" файлов синтаксически исправьте ".properties" файлы). Локаль значения по умолчанию Locale("en", "GB"). Вызов getBundle с параметрами локали ниже инстанцирует пакетов ресурса следующим образом:
| Локаль ("франк", "CH") | MyResources_fr_CH.class, родительский MyResources_fr.properties, порождают MyResources. class |
| Локаль ("франк", "ФРАНК") | MyResources_fr.properties, родительский MyResources. class |
| Локаль ("de", "DE") | MyResources_en.properties, родительский MyResources. class |
| Локаль ("en", "US") | MyResources_en.properties, родительский MyResources. class |
| Локаль ("es", "ES") | MyResources_es_ES.class, родительский MyResources. class |
MyResources_fr_CH.properties файла никогда не используется, потому что он скрывается MyResources_fr_CH.class. Аналогично, MyResources.properties также скрывается MyResources. class.
baseName - базовое имя пакета ресурса, полностью определенного имени classlocale - локаль, для которой требуется пакет ресурсаloader - загрузчик class, из которого можно загрузить пакет ресурсаNullPointerException - если baseName, locale, или loader nullMissingResourceException - если никакой пакет ресурса для указанного базового имени не может быть найденpublic static ResourceBundle getBundle(String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control)
getBundle методы фабрики без control параметр, данный control определяет, как определить местоположение и инстанцировать пакетов ресурса. Концептуально, процесс загрузки пакета с данным control выполняется в следующих шагах.
baseName, targetLocale и loader. Если требуемый экземпляр пакета ресурса находится в кэше и периоды времени-к-живому экземпляра, и все его родительские экземпляры не истекли, экземпляр возвращается к вызывающей стороне. Иначе, этот метод фабрики продолжается с процессом загрузки ниже.control.getFormats метод вызывают, чтобы заставить форматы пакета ресурса производить имена ресурса или пакет. Строки "java.class" и "java.properties" назовите class на основе и основанными на свойстве пакетами ресурса, соответственно. Другие строки, запускающиеся с "java." резервируются для будущих расширений и не должен использоваться для определенных с помощью приложения форматов. Другие строки определяют определенные с помощью приложения форматы.control.getCandidateLocales метод вызывают с целевой локалью, чтобы получить список кандидата Locales, который ищутся пакеты ресурса.control.newBundle метод вызывают, чтобы инстанцировать a ResourceBundle для основного имени пакета, локали кандидата, и формата. (Обратитесь к примечанию по поиску кэша ниже.) Этот шаг выполняется с помощью итераций по всем комбинациям локалей кандидата и форматов до newBundle метод возвращает a ResourceBundle экземпляр или итерация израсходовали все комбинации. Например, если локали кандидата Locale("de", "DE"), Locale("de") и Locale("") и форматы "java.class" и "java.properties", тогда следующее является последовательностью комбинаций формата локали, которые будут использоваться, чтобы вызвать control.newBundle. | Locale |
format |
| Locale("de", "DE") |
java.class |
| Locale("de", "DE") | java.properties |
| Locale("de") | java.class |
| Locale("de") | java.properties |
| Locale("") |
java.class |
| Locale("") | java.properties |
Locale("")), и локаль кандидата перечисляет только содержавший Locale(""), возвратите пакет вызывающей стороне. Если пакет был найден, который является основным пакетом, но списком локали кандидата содержавшие локали кроме Локали (""), приостанавливает пакет и продолжается к Шагу 6. Если пакет был найден, который не является основным пакетом, продолжите к Шагу 7.control.getFallbackLocale метод вызывают, чтобы заставить локаль нейтрализации (альтернатива текущей целевой локали) пытаться далее найти пакет ресурса. Если метод возвращает ненулевую локаль, это становится следующей целевой локалью, и процесс загрузки запускается с Шага 3. Иначе, если основной пакет был найден и приостановлен в предыдущем Шаге 5, он возвращается к вызывающей стороне теперь. Иначе, MissingResourceException бросается.Во время процесса загрузки пакета ресурса выше, этот метод фабрики ищет кэш прежде, чем вызвать control.newBundle метод. Если период времени-к-живому пакета ресурса, найденного в кэше, истек, вызовы метода фабрики control.needsReload метод, чтобы определить, должен ли пакет ресурса быть перезагружен. Если перезагрузка требуется, вызовы метода фабрики control.newBundle перезагружать пакет ресурса. Если control.newBundle возвраты null, метод фабрики помещает фиктивный пакет ресурса в кэш как метка несуществующих пакетов ресурса, чтобы избежать издержек поиска для последующих запросов. Такие фиктивные пакеты ресурса находятся под тем же самым контролем истечения как определено control.
Все загруженные пакеты ресурса кэшируются по умолчанию. Обратитесь к control.getTimeToLive для деталей.
Следующее является примером процесса загрузки пакета со значением по умолчанию ResourceBundle.Control реализация.
Условия:
foo.bar.Messages
Locale: Locale.ITALYLocale: Locale.FRENCHfoo/bar/Messages_fr.properties и foo/bar/Messages.propertiesВо-первых, getBundle попытки, загружающие ресурс, связываются в следующей последовательности.
foo.bar.Messages_it_IT
foo/bar/Messages_it_IT.properties
foo.bar.Messages_itfoo/bar/Messages_it.propertiesfoo.bar.Messagesfoo/bar/Messages.propertiesВ этой точке, getBundle находит foo/bar/Messages.properties, который приостанавливается, потому что это - основной пакет. getBundle вызовы control.getFallbackLocale("foo.bar.Messages", Locale.ITALY) который возвращается Locale.FRENCH. Затем, getBundle попытки, загружающие пакет в следующей последовательности.
foo.bar.Messages_frfoo/bar/Messages_fr.propertiesfoo.bar.Messagesfoo/bar/Messages.propertiesgetBundle находит foo/bar/Messages_fr.properties и создает a ResourceBundle экземпляр. Затем, getBundle устанавливает его родительскую цепочку от списка candiate локалей. Только foo/bar/Messages.properties находится в списке и getBundle создает a ResourceBundle экземпляр, который становится родителем экземпляра для foo/bar/Messages_fr.properties.
baseName - базовое имя пакета ресурса, полностью определенного имени classtargetLocale - локаль, для которой требуется пакет ресурсаloader - загрузчик class, из которого можно загрузить пакет ресурсаcontrol - управление, которое дает информацию для ресурса, связывает процесс загрузкиNullPointerException - если baseName, targetLocale, loader, или control nullMissingResourceException - если никакой пакет ресурса для указанного базового имени не может быть найденIllegalArgumentException - если данный control не выполняет должным образом (например, control.getCandidateLocales нуль возвратов.) Отмечают ту проверку допустимости control выполняется как необходимый.public static final void clearCache()
ResourceBundle.Control.getTimeToLive(String,Locale)public static final void clearCache(ClassLoader loader)
loader - загрузчик classNullPointerException - если loader нульResourceBundle.Control.getTimeToLive(String,Locale)protected abstract Object handleGetObject(String key)
key - ключ для требуемого объектаNullPointerException - если key nullpublic abstract Enumeration<String> getKeys()
Enumeration из ключей, содержавшихся в этом ResourceBundle и его родительские пакеты.public boolean containsKey(String key)
key содержится в этом ResourceBundle или его родительские пакеты.key - ресурс keytrue если данный key содержится в этом ResourceBundle или его родительские пакеты; false иначе.NullPointerException - если key nullpublic Set<String> keySet()
Set из всех ключей, содержавшихся в этом ResourceBundle и его родительские пакеты.Set из всех ключей, содержавшихся в этом ResourceBundle и его родительские пакеты.protected Set<String> handleKeySet()
Set из ключей, содержавшихся только в этом ResourceBundle. Реализация по умолчанию возвращает a Set из ключей, возвращенных getKeys метод тот, за исключением тех, для который handleGetObject возвраты метода null. Однажды Set был создан, значение сохраняется в этом ResourceBundle чтобы избежать производить то же самое Set в последующих вызовах. Подклассы могут переопределить этот метод для более быстрой обработки.
Set из ключей, содержавшихся только в этом ResourceBundle
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92