Класс AbstractResourceBundleProvider
- java.lang.Object
-
- java.util.spi.AbstractResourceBundleProvider
- Все реализуемые интерфейсы:
ResourceBundleProvider
public abstract class AbstractResourceBundleProvider extends Object implements ResourceBundleProvider
AbstractResourceBundleProvider — это абстрактный класс, который предоставляет базовые средства для реализации класса-провайдера для ResourceBundleProvider.
Наборы ресурсов могут быть упакованы в один или несколько именованных модулей, модулях поставщиков сервисов. Потребитель набора ресурсов — это тот, кто вызывает ResourceBundle.getBundle(String). Для того, чтобы модуль-потребитель загрузил набор ресурсов "com.example.app.MyResources", предоставляемый другим модулем, он будет использовать механизм загрузчика сервисов. Должен быть определен интерфейс сервиса под названием "com.example.app.spi.MyResourcesProvider", и модуль-поставщик сервиса предоставит реализующий класс "com.example.app.spi.MyResourcesProvider" следующим образом:
import com.example.app.spi.MyResourcesProvider;
class MyResourcesProviderImpl extends AbstractResourceBundleProvider
implements MyResourcesProvider
{
public MyResourcesProviderImpl() {
super("java.properties");
}
// this provider maps the resource bundle to per-language package
protected String toBundleName(String baseName, Locale locale) {
return "p." + locale.getLanguage() + "." + baseName;
}
public ResourceBundle getBundle(String baseName, Locale locale) {
// this module only provides bundles in French
if (locale.equals(Locale.FRENCH)) {
return super.getBundle(baseName, locale);
}
// otherwise return null
return null;
}
}
См. ResourceBundleProvider для получения подробной информации.- С момента:
- 9
- См. также:
- Наборы ресурсов и именованные модули
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
AbstractResourceBundleProvider() |
Создаёт |
protected |
AbstractResourceBundleProvider(String... formats) |
Создаёт |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
ResourceBundle |
getBundle(String baseName,
Locale locale) |
Возвращает |
protected String |
toBundleName(String baseName,
Locale locale) |
Возвращает имя набора ресурсов для заданного |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Конструкторы
AbstractResourceBundleProvider
protected AbstractResourceBundleProvider()
Создаёт AbstractResourceBundleProvider с форматом "java.properties". Этот конструктор эквивалентен AbstractResourceBundleProvider("java.properties").
AbstractResourceBundleProvider
protected AbstractResourceBundleProvider(String... formats)
Создаёт AbstractResourceBundleProvider со заданными formats. Метод getBundle(String, Locale) ищет наборы ресурсов для заданного formats. formats должен быть "java.class" или "java.properties".
- Параметры:
-
formats- форматы, используемые для загрузки наборов ресурсов - Исключения:
-
NullPointerException- если заданныйformatsравен null -
IllegalArgumentException- если заданныйformatsне равен "java.class" или "java.properties".
Методы
toBundleName
protected String toBundleName(String baseName,
Locale locale)
Возвращает имя набора ресурсов для заданного baseName и
locale, предоставляемого этим провайдером.
- Примечание API:
- Провайдер набора ресурсов может упаковать свои наборы ресурсов в той же папке, что и базовое имя набора ресурсов, если папка не разделена между другими именованными модулями. Если существует более одного провайдера наборов ресурсов, предоставляющих набор ресурсов с заданным базовым именем, наборы ресурсов могут быть упакованы с группировкой по языку или по региону, чтобы избежать разделения папок.
Например, если
baseNameэто"p.resources.Bundle", то имя набора ресурсов"p.resources.Bundle"дляLocale("ja", "", "XX")иLocale("en")соответственно могут быть"p.resources.ja.Bundle_ja_ _XX"и"p.resources.Bundle_en".Этот метод вызывается из реализации по умолчанию метода
getBundle(String, Locale). - Примечание реализации:
- Реализация этого метода по умолчанию такая же, как и реализация
ResourceBundle.Control.toBundleName(String, Locale). - Параметры:
-
baseName- базовое имя набора ресурсов, полное имя класса -
locale- локаль для загрузки набора ресурсов - Возвращает:
- имя набора ресурсов для набора ресурсов
getBundle
public ResourceBundle getBundle(String baseName,
Locale locale)
Возвращает ResourceBundle для заданного baseName и locale.
- Определено в:
-
getBundleв интерфейсеResourceBundleProvider - Примечание реализации:
- Реализация этого метода по умолчанию вызывает метод
toBundleNameдля получения имени набора ресурсов дляbaseNameиlocaleи находит набор ресурсов с именем набора ресурсов локально в модуле этого провайдера. Он будет искать только указанные форматы при создании этого провайдера. - Параметры:
-
baseName- базовое имя набора ресурсов, полное имя класса. -
locale- локаль для экземпляра набора ресурсов - Возвращает:
-
ResourceBundleзаданногоbaseNameиlocale, илиnullесли набор ресурсов не найден - Исключения:
-
NullPointerException- еслиbaseNameилиlocaleравенnull -
UncheckedIOException- если при загрузке набора ресурсов произошла ошибка ввода-вывода
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/spi/AbstractResourceBundleProvider.html