Класс ResourceBundle.Control
- java.lang.Object
-
- java.util.ResourceBundle.Control
- Вложенный класс:
- ResourceBundle
public static class ResourceBundle.Control extends Object
ResourceBundle.Control определяет набор методов обратного вызова, которые вызываются методом ResourceBundle.getBundle во время процесса загрузки ресурсов. Другими словами, ResourceBundle.Control взаимодействует с фабричными методами для загрузки ресурсов. По умолчанию методы обратного вызова предоставляют информацию, необходимую фабричным методам для выполнения стандартного поведения.
Помимо методов обратного вызова, методы toBundleName и toResourceName определены в первую очередь для удобства реализации методов обратного вызова. Однако, метод toBundleName можно переопределить, чтобы использовать различные соглашения об организации и упаковке локализованных ресурсов. Метод toResourceName final для избежания использования неправильных разделителей имен ресурсов и классов.
Два фабричных метода, getControl(List) и getNoFallbackControl(List), предоставляют ResourceBundle.Control экземпляры, реализующие общие варианты стандартного процесса загрузки ресурсов.
Форматы, возвращаемые методом getFormats, и кандидаты на локаль, возвращаемые методом getCandidateLocales, должны быть согласованы во всех ResourceBundle.getBundle вызовах для одного и того же базового ресурса. В противном случае, методы ResourceBundle.getBundle могут вернуть нежелаемые ресурсы. Например, если только "java.class" возвращается методом getFormats для первого вызова ResourceBundle.getBundle и только "java.properties" для второго вызова, то второй вызов вернёт кешированный результат, полученный во время первого вызова.
Экземпляр ResourceBundle.Control должен быть потокобезопасным, если используется одновременно несколькими потоками. ResourceBundle.getBundle не синхронизируется для вызовов методов ResourceBundle.Control. Стандартные реализации методов потокобезопасны.
Приложения могут указать ResourceBundle.Control экземпляры, возвращаемые фабричными методами getControl или созданные из подкласса ResourceBundle.Control, для настройки процесса загрузки ресурсов. Ниже приведены примеры изменения стандартного процесса загрузки ресурсов.
Пример 1
Следующий код позволяет ResourceBundle.getBundle искать только ресурсы в формате properties.
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
Следующий пример демонстрирует загрузку ресурсов в формате XML с помощью 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
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static List<String> |
FORMAT_CLASS Только формат класса |
static List<String> |
FORMAT_DEFAULT Стандартный формат |
static List<String> |
FORMAT_PROPERTIES Только формат properties |
static long |
TTL_DONT_CACHE Константа времени жизни для отключения кэширования загруженных ресурсов. |
static long |
TTL_NO_EXPIRATION_CONTROL Константа времени жизни для отключения контроля истечения срока действия загруженных ресурсов в кэше. |
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
Control() Единственный конструктор. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
List<Locale> |
getCandidateLocales(String baseName,
Locale locale) Возвращает |
static ResourceBundle.Control |
getControl(List<String> formats) Возвращает |
Locale |
getFallbackLocale(String baseName,
Locale locale) Возвращает |
List<String> |
getFormats(String baseName) Возвращает |
static ResourceBundle.Control |
getNoFallbackControl(List<String> formats) Возвращает |
long |
getTimeToLive(String baseName,
Locale locale) Возвращает значение времени жизни (TTL) для ресурсов, загруженных в рамках данного |
boolean |
needsReload(String baseName,
Locale locale,
String format,
ClassLoader loader,
ResourceBundle bundle,
long loadTime) Определяет, нужно ли перезагружать истекшие |
ResourceBundle |
newBundle(String baseName,
Locale locale,
String format,
ClassLoader loader,
boolean reload) Создаёт экземпляр ресурсов для данного имени ресурса, формата и локали, используя указанный загрузчик классов при необходимости. |
String |
toBundleName(String baseName,
Locale locale) Преобразует заданное |
String |
toResourceName(String bundleName,
String suffix) Преобразует заданное |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
FORMAT_DEFAULT
public static final List<String> FORMAT_DEFAULT
Формат по умолчанию List, который содержит строки "java.class" и "java.properties", в этом порядке. Этот List является неизменяемым.
- См. также:
getFormats(String)
FORMAT_CLASS
public static final List<String> FORMAT_CLASS
Формат только для классов List, содержащий "java.class". Этот List является неизменяемым.
- См. также:
getFormats(String)
FORMAT_PROPERTIES
public static final List<String> FORMAT_PROPERTIES
Формат только для свойств List, содержащий "java.properties". Этот List является неизменяемым.
- См. также:
getFormats(String)
TTL_DONT_CACHE
public static final long TTL_DONT_CACHE
Константа времени жизни для некеширования загруженных экземпляров ресурсных пакетов.
TTL_NO_EXPIRATION_CONTROL
public static final long TTL_NO_EXPIRATION_CONTROL
Константа времени жизни для отключения контроля истечения срока действия загруженных экземпляров ресурсных пакетов в кэше.
Конструкторы
Control
protected Control()
Единственный конструктор. (Для вызова конструкторами подклассов, обычно неявным образом.)
Методы
getControl
public static final ResourceBundle.Control getControl(List<String> formats)
Возвращает ResourceBundle.Control, в котором метод getFormats возвращает указанные formats. formats должен быть равен одному из FORMAT_PROPERTIES, FORMAT_CLASS или FORMAT_DEFAULT. ResourceBundle.Control экземпляры, возвращаемые этим методом, являются одиночными и потокобезопасными.
Указание FORMAT_DEFAULT эквивалентно созданию экземпляра класса ResourceBundle.Control, за исключением того, что этот метод возвращает одиночку.
- Параметры:
-
formats- форматы, которые должны возвращаться методомResourceBundle.Control.getFormats - Возвращает:
ResourceBundle.Controlподдерживающий указанныеformats- Исключения:
-
NullPointerException- еслиformatsявляетсяnull -
IllegalArgumentException- еслиformatsнеизвестен
getNoFallbackControl
public static final ResourceBundle.Control getNoFallbackControl(List<String> formats)
Возвращает ResourceBundle.Control, в котором метод getFormats возвращает указанные formats, а метод getFallbackLocale возвращает null. formats должен быть равен одному из FORMAT_PROPERTIES, FORMAT_CLASS или FORMAT_DEFAULT. ResourceBundle.Control экземпляры, возвращаемые этим методом, являются одиночными и потокобезопасными.
- Параметры:
-
formats- форматы, которые должны возвращаться методомResourceBundle.Control.getFormats - Возвращает:
ResourceBundle.Controlподдерживающий указанныеformatsбез поддержки обратного вызоваLocale- Исключения:
-
NullPointerException- еслиformatsявляетсяnull -
IllegalArgumentException- еслиformatsнеизвестен
getFormats
public List<String> getFormats(String baseName)
Возвращает List String содержащий форматы, используемые для загрузки ресурсных пакетов для данного baseName. Метод фабрики ResourceBundle.getBundle пытается загрузить ресурсные пакеты с форматами в указанном порядке списка. Список, возвращаемый этим методом, должен содержать как минимум один String. Предустановленные форматы — "java.class" для ресурсных пакетов на основе классов и "java.properties" для ресурсных пакетов на основе свойств. Строки, начинающиеся с "java." зарезервированы для будущих расширений и не должны использоваться приложениями для определения форматов.
Не является обязательным возвращать неизменяемый (немодифицируемый) List. Однако, возвращённый List не должен быть изменён после возвращения им методом getFormats.
Реализация по умолчанию возвращает FORMAT_DEFAULT, чтобы метод фабрики ResourceBundle.getBundle сначала искал ресурсные пакеты на основе классов, а затем — на основе свойств.
- Параметры:
-
baseName- базовое имя ресурсного пакета, полное имя класса - Возвращает:
ListStringсодержащий форматы для загрузки ресурсных пакетов.- Исключения:
-
NullPointerException- еслиbaseNamenull - См. также:
-
FORMAT_DEFAULT,FORMAT_CLASS,FORMAT_PROPERTIES
getCandidateLocales
public List<Locale> getCandidateLocales(String baseName,
Locale locale) Возвращает List из Locale в качестве кандидатов на языковые локали для baseName и locale. Этот метод вызывается методом-фабрикой ResourceBundle.getBundle каждый раз, когда метод-фабрика пытается найти пакет ресурсов для целевой Locale.
Последовательность кандидатских локалей также соответствует пути поиска ресурсов во время выполнения (также известному как цепь предков), если соответствующие пакеты ресурсов для кандидатских локалей существуют, и их предки не определены самими загруженными пакетами ресурсов. Последним элементом списка должна быть корневая локаль, если необходимо, чтобы базовый пакет был терминалом цепи предков.
Если заданная локаль равна Locale.ROOT (корневая локаль), должен быть возвращён List, содержащий только корневую Locale. В этом случае метод-фабрика ResourceBundle.getBundle загружает только базовый пакет в качестве результирующего пакета ресурсов.
Не является обязательным возвращать неизменяемый (немодифицируемый) List. Однако возвращённый List не должен изменяться после того, как он был возвращён методом getCandidateLocales.
Реализация по умолчанию возвращает List, содержащий Locale с использованием правил, описанных ниже. В описании ниже L, S, C и V соответственно представляют непустой язык, сценарий, страну и вариант. Например, [L, C] представляет Locale, который имеет непустые значения только для языка и страны. Форма L("xx") означает, что значение (непустое) языка равно "xx". Во всех случаях Locale с пустыми значениями конечных компонентов опускаются.
- Для входной
Localeсо значением сценария, равным пустой строке, добавляются кандидатскиеLocaleс пропусканием конечного компонента по одному, как показано ниже:- [L, C, V]
- [L, C]
- [L]
-
Locale.ROOT
- Для входной
Localeсо значением сценария, отличным от пустой строки, добавляются кандидатскиеLocaleс пропусканием конечного компонента до языка, затем добавляются кандидаты, сгенерированные изLocaleс восстановленными страной и вариантом:- [L, S, C, V]
- [L, S, C]
- [L, S]
- [L, C, V]
- [L, C]
- [L]
-
Locale.ROOT
- Для входной
Localeсо значением варианта, состоящим из нескольких подтегов, разделённых нижним подчёркиванием, генерируются кандидатскиеLocaleс пропусканием подтегов варианта по одному, затем вставляются после каждого вхожденияLocaleсо значением полного варианта в исходном списке. Например, если вариант состоит из двух подтегов V1 и V2:- [L, S, C, V1, V2]
- [L, S, C, V1]
- [L, S, C]
- [L, S]
- [L, C, V1, V2]
- [L, C, V1]
- [L, C]
- [L]
-
Locale.ROOT
- Специальные случаи для китайского языка. Когда у входной
Localeязык "zh" (китайский) и пустое значение сценария, могут быть предоставлены либо "Hans" (упрощённый), либо "Hant" (традиционный), в зависимости от страны. Когда страна "CN" (Китай) или "SG" (Сингапур), используется "Hans". Когда страна "HK" (Гонконг), "MO" (Макао) или "TW" (Тайвань), используется "Hant". Во всех других странах или при пустой стране сценарий не предоставляется. Например, дляLocale("zh", "CN"), список кандидатов будет:- [L("zh"), S("Hans"), C("CN")]
- [L("zh"), S("Hans")]
- [L("zh"), C("CN")]
- [L("zh")]
-
Locale.ROOT
Locale("zh", "TW"), список кандидатов будет:- [L("zh"), S("Hant"), C("TW")]
- [L("zh"), S("Hant")]
- [L("zh"), C("TW")]
- [L("zh")]
-
Locale.ROOT
- Специальные случаи для норвежского языка. И
Locale("no", "NO", "NY"), иLocale("nn", "NO")представляют норвежский нюнорск. Когда языком локали является "nn", генерируется стандартный список кандидатов до [L("nn")], а затем добавляются следующие кандидаты:- [L("no"), C("NO"), V("NY")]
- [L("no"), C("NO")]
- [L("no")]
-
Locale.ROOT
Locale("no", "NO", "NY"), она сначала преобразуется вLocale("nn", "NO"), а затем выполняется вышеуказанная процедура.Также Java рассматривает язык "no" как синоним норвежского букмоля "nb". За исключением единственного случая
Locale("no", "NO", "NY")(обработанного выше), когда у входнойLocaleязык "no" или "nb", кандидатскиеLocaleс кодами языка "no" и "nb" чередуются, сначала используя запрашиваемый язык, затем его синоним. Например,Locale("nb", "NO", "POSIX")генерирует следующий список кандидатов:- [L("nb"), C("NO"), V("POSIX")]
- [L("no"), C("NO"), V("POSIX")]
- [L("nb"), C("NO")]
- [L("no"), C("NO")]
- [L("nb")]
- [L("no")]
-
Locale.ROOT
Locale("no", "NO", "POSIX")сгенерирует тот же список, за исключением того, что локали с "no" будут появляться перед соответствующими локалями с "nb".
Реализация по умолчанию использует ArrayList, которую переопределяющие реализации могут изменить перед возвращением её вызывающей стороне. Однако подкласс не должен изменять её после возвращения методом getCandidateLocales.
Например, если заданная baseName - "Messages", а заданная locale - Locale("ja", "", "XX"), тогда List из Locale возвращается. А если пакеты ресурсов для "ja" и "" Locale найдены, то путь поиска ресурсов во время выполнения (цепь предков) равен
Messages_ja -> Messages
- Параметры:
-
baseName- базовое имя пакета ресурсов, полное имя класса -
locale- локаль, для которой требуется пакет ресурсов - Возвращает:
ListкандидатскихLocaleдля даннойlocale- Выбрасывает:
-
NullPointerException- еслиbaseNameилиlocale-null
getFallbackLocale
public Locale getFallbackLocale(String baseName,
Locale locale) Возвращает Locale для использования в качестве локали по умолчанию для дальнейших поисков пакетов ресурсов методом-фабрикой ResourceBundle.getBundle. Этот метод вызывается из метода-фабрики каждый раз, когда не был найден результирующий пакет ресурсов для baseName и locale, где locale - это либо параметр для ResourceBundle.getBundle, либо предыдущая локаль по умолчанию, возвращённая этим методом.
Метод возвращает null, если дальнейший поиск по умолчанию не требуется.
Реализация по умолчанию возвращает стандартную Locale, если заданная locale не является стандартной. В противном случае возвращается null.
- Параметры:
-
baseName- базовое имя пакета ресурсов, полное имя класса, для которогоResourceBundle.getBundleне смог найти пакеты ресурсов (кроме базового) -
locale-Locale, для которогоResourceBundle.getBundleне смог найти пакеты ресурсов (кроме базового) - Возвращает:
Localeдля поиска по умолчанию илиnull, если дальнейший поиск по умолчанию не требуется.- Выбрасывает:
-
NullPointerException- еслиbaseNameилиlocale-null
newBundle
public ResourceBundle newBundle(String baseName,
Locale locale,
String format,
ClassLoader loader,
boolean reload)
throws IllegalAccessException,
InstantiationException,
IOException Инициализирует пакет ресурсов для заданного имени пакета, формата и региона, используя заданный загрузчик классов, если необходимо. Данный метод возвращает null , если пакет ресурсов недоступен для заданных параметров. Если пакет ресурсов не может быть инициализирован из-за непредвиденной ошибки, ошибка должна быть сообщена путём выброса исключения Error или Exception вместо простого возвращения null.
Если флаг reload имеет значение true, это указывает на то, что этот метод вызывается потому, что ранее загруженный пакет ресурсов истек.
Реализация по умолчанию инициализирует ResourceBundle следующим образом.
- Имя пакета получается путём вызова
toBundleName(baseName, locale). - Если
formatимеет значение"java.class", класс, указанный именем пакета, загружается путём вызоваClassLoader.loadClass(String). Затем,ResourceBundleинициализируется путём вызоваClass.newInstance(). Обратите внимание, что флагreloadигнорируется при загрузке пакетов ресурсов на основе классов в этой реализации по умолчанию. - Если
formatимеет значение"java.properties", вызываетсяtoResourceName(bundlename, "properties")для получения имени ресурса. Еслиreloadимеет значениеtrue, вызываетсяload.getResourceдля полученияURLдля созданияURLConnection. ЭтотURLConnectionиспользуется для отключения кэшей базовых слоёв загрузки ресурсов и для полученияInputStream. В противном случае вызываетсяloader.getResourceAsStreamдля полученияInputStream. Затем,PropertyResourceBundleконструируется с использованиемInputStream. - Если
formatни"java.class", ни"java.properties", выбрасываетсяIllegalArgumentException.
- Параметры:
-
baseName- базовое имя пакета ресурсов, полное имя класса -
locale- регион, для которого должен быть инициализирован пакет ресурсов -
format- формат пакета ресурсов для загрузки -
loader-ClassLoaderдля загрузки пакета -
reload- флаг, указывающий на перезагрузку пакета;trueпри перезагрузке истекшего пакета ресурсов,falseв противном случае - Возвращает:
- экземпляр пакета ресурсов или
null, если ни один не был найден. - Выбрасывает:
-
NullPointerException- еслиbundleName,locale,format, илиloaderимеет значениеnull, или еслиnullвозвращается методомtoBundleName -
IllegalArgumentException- еслиformatнеизвестен или если найденный ресурс для заданных параметров содержит некорректные данные. -
ClassCastException- если загруженный класс не может быть преобразован вResourceBundle -
IllegalAccessException- если класс или его конструктор без параметров недоступен. -
InstantiationException- если инициализация класса завершается неудачно по другой причине. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, завершается неудачно. -
SecurityException- Если менеджер безопасности присутствует, и создание новых экземпляров запрещено. См.Class.newInstance()для подробностей. -
IOException- если произошла ошибка при чтении ресурсов с использованием операций ввода/вывода
Срок действия
public long getTimeToLive(String baseName,
Locale locale) Возвращает значение срока действия (TTL) для пакетов ресурсов, загружаемых в этом ResourceBundle.Control. Положительные значения срока действия указывают количество миллисекунд, в течение которого пакет может храниться в кэше без проверки по исходным данным, из которых он был создан. Значение 0 указывает на то, что пакет должен быть проверен каждый раз при его получении из кэша. TTL_DONT_CACHE указывает, что загруженные пакеты ресурсов не помещаются в кэш. TTL_NO_EXPIRATION_CONTROL указывает, что загруженные пакеты ресурсов помещаются в кэш без контроля истечения срока действия.
Срок действия влияет только на процесс загрузки пакета методом фабрики ResourceBundle.getBundle. То есть, если фабричный метод находит в кэше истекший пакет ресурсов, фабричный метод вызывает метод needsReload для определения необходимости перезагрузки пакета ресурсов. Если needsReload возвращает true, экземпляр кэшированного пакета ресурсов удаляется из кэша. В противном случае экземпляр остаётся в кэше, обновлённый с новым значением TTL, возвращаемым этим методом.
Все кэшированные пакеты ресурсов могут быть удалены из кэша из-за ограничений памяти среды выполнения. Возврат большого положительного значения не означает блокировку загруженных пакетов ресурсов в кэше.
Реализация по умолчанию возвращает TTL_NO_EXPIRATION_CONTROL.
- Параметры:
-
baseName- базовое имя пакета ресурсов, для которого задаётся значение истечения срока действия. -
locale- регион пакета ресурсов, для которого задаётся значение истечения срока действия. - Возвращает:
- время (0 или положительный временной сдвиг в миллисекундах от кэшированного времени) для истечения срока действия загруженных пакетов в кэше,
TTL_NO_EXPIRATION_CONTROLдля отключения контроля истечения срока действия илиTTL_DONT_CACHEдля отключения кэширования. - Выбрасывает:
-
NullPointerException- еслиbaseNameилиlocaleимеет значениеnull
необходима перезагрузка
public boolean needsReload(String baseName,
Locale locale,
String format,
ClassLoader loader,
ResourceBundle bundle,
long loadTime) Определяет, необходимо ли перезагружать истекший bundle в кэше на основе времени загрузки, заданного loadTime, или по другим критериям. Метод возвращает true, если перезагрузка требуется; false в противном случае. loadTime представляет собой временной сдвиг в миллисекундах с момента Calendar Эпохи. Вызывающий метод фабрики ResourceBundle.getBundle вызывает этот метод на экземпляре ResourceBundle.Control , используемом для текущего вызова, а не на экземпляре, используемом в вызове, который изначально загрузил пакет ресурсов.
Реализация по умолчанию сравнивает loadTime и время последней модификации исходных данных пакета ресурсов. Если установлено, что исходные данные были изменены с момента loadTime, возвращается true. В противном случае возвращается false. Эта реализация предполагает, что заданный format — это та же строка, что и его расширение файла, если это не один из стандартных форматов, "java.class" или "java.properties".
- Параметры:
-
baseName- базовое имя пакета ресурсов, полное имя класса -
locale- регион, для которого должен быть инициализирован пакет ресурсов -
format- формат пакета ресурсов для загрузки -
loader-ClassLoaderдля загрузки пакета -
bundle- экземпляр пакета ресурсов, который истек в кэше -
loadTime- время загрузкиbundleи помещения в кэш - Возвращает:
-
true, если истекший пакет необходимо перезагрузить;falseв противном случае. - Выбрасывает:
-
NullPointerException- еслиbaseName,locale,format,loader, илиbundleимеет значениеnull
toBundleName
public String toBundleName(String baseName,
Locale locale) Преобразует заданное baseName и locale в имя пакета. Этот метод вызывается из реализации по умолчанию методов newBundle и needsReload.
Эта реализация возвращает следующее значение:
baseName + "_" + language + "_" + script + "_" + country + "_" + variant, где
language, script, country, и variant представляют собой значения языка, письменности, страны и варианта locale соответственно. Конечные компоненты со значениями, равными пустым строкам, опускаются вместе с предшествующим '_'. Если значение письменности пустое, значение письменности опускается вместе с предшествующим '_'. Если все значения являются пустыми строками, возвращается baseName. Например, если baseName имеет значение "baseName" и locale имеет значение Locale("ja", "", "XX"), возвращается "baseName_ja_ _XX". Если заданный регион имеет значение Locale("en"), возвращается "baseName_en".
Переопределение этого метода позволяет приложениям использовать разные соглашения при организации и упаковке локализованных ресурсов.
- Параметры:
-
baseName- базовое имя пакета ресурсов, полное имя класса -
locale- регион, для которого должен быть загружен пакет ресурсов - Возвращает:
- имя пакета для пакета ресурсов
- Выбрасывает:
-
NullPointerException- еслиbaseNameилиlocaleимеет значениеnull
toResourceName
public final String toResourceName(String bundleName,
String suffix) Преобразует заданный bundleName в форму, требуемую методом ClassLoader.getResource, заменяя все вхождения '.' в bundleName на '/' и добавляя '.' и заданный файл suffix. Например, если bundleName равно "foo.bar.MyResources_ja_JP" и suffix равно "properties", то возвращается "foo/bar/MyResources_ja_JP.properties".
- Параметры:
-
bundleName- имя пакета -
suffix- суффикс типа файла - Возвращает:
- имя преобразованного ресурса
- Исключения:
-
NullPointerException- еслиbundleNameилиsuffixравноnull
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.