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 }; } }
String
s. В этом примере ключи являются "OkKey" и "CancelKey". В вышеупомянутом примере значения также String
s - "OK" и "Отмена" - но они не должны быть. Значения могут быть любым типом объекта. Вы получаете объект от пакета ресурса, используя соответствующий метод метода get. Поскольку "OkKey" и "CancelKey" являются оба строками, Вы использовали бы getString
получать их:
Методы метода get все требуют ключа как параметра и возвращают объект если найдено. Если объект не находится, метод метода get бросает abutton1 = new Button(myResources.getString("OkKey")); button2 = new Button(myResources.getString("CancelKey"));
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")); } }
ResourceBundle
s. Например, у Вас мог быть ряд пакетов для сообщений об исключительной ситуации, 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
null
MissingResourceException
- если никакой объект для данного ключа не может быть найденClassCastException
- если объект, найденный для данного ключа, не является строкойpublic final String[] getStringArray(String key)
(String[]) getObject
(key)
.
key
- ключ для требуемого строкового массиваNullPointerException
- если key
null
MissingResourceException
- если никакой объект для данного ключа не может быть найденClassCastException
- если объект, найденный для данного ключа, не является строковым массивомpublic final Object getObject(String key)
handleGetObject
. Если не успешный, и родительский пакет ресурса не нуль, он вызывает родителя getObject
метод. Если все еще успешный, это не бросает MissingResourceException.key
- ключ для требуемого объектаNullPointerException
- если key
null
MissingResourceException
- если никакой объект для данного ключа не может быть найден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
null
MissingResourceException
- если никакой пакет ресурса для указанного базового имени не может быть найден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
null
MissingResourceException
- если никакой пакет ресурса для указанного базового имени не может быть найден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
null
MissingResourceException
- если никакой пакет ресурса для указанного базового имени не может быть найден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
в locales
NullPointerException
- если baseName
, locales
или control
null
MissingResourceException
- если никакой пакет ресурса для указанного базового имени в любом из 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
Отметьте: Для некоторыхLocale
s, список имен пакета кандидата содержит дополнительные имена, или порядок имен пакета немного изменяется. См. описание реализации по умолчанию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 не проверяют это, и таким образом, это возможно к доступу PropertyResourceBundle
s, определяя путь (использующий "/") вместо полностью определенного имени 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
null
MissingResourceException
- если никакой пакет ресурса для указанного базового имени не может быть найден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
метод вызывают с целевой локалью, чтобы получить список кандидата Locale
s, который ищутся пакеты ресурса.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.ITALY
Locale
: Locale.FRENCH
foo/bar/Messages_fr.properties
и foo/bar/Messages.properties
Во-первых, getBundle
попытки, загружающие ресурс, связываются в следующей последовательности.
foo.bar.Messages_it_IT
foo/bar/Messages_it_IT.properties
foo.bar.Messages_it
foo/bar/Messages_it.properties
foo.bar.Messages
foo/bar/Messages.properties
В этой точке, getBundle
находит foo/bar/Messages.properties
, который приостанавливается, потому что это - основной пакет. getBundle
вызовы control.getFallbackLocale("foo.bar.Messages", Locale.ITALY)
который возвращается Locale.FRENCH
. Затем, getBundle
попытки, загружающие пакет в следующей последовательности.
foo.bar.Messages_fr
foo/bar/Messages_fr.properties
foo.bar.Messages
foo/bar/Messages.properties
getBundle
находит 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
null
MissingResourceException
- если никакой пакет ресурса для указанного базового имени не может быть найден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
null
public abstract Enumeration<String> getKeys()
Enumeration
из ключей, содержавшихся в этом ResourceBundle
и его родительские пакеты.public boolean containsKey(String key)
key
содержится в этом ResourceBundle
или его родительские пакеты.key
- ресурс key
true
если данный key
содержится в этом ResourceBundle
или его родительские пакеты; false
иначе.NullPointerException
- если key
null
public 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