Класс 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 с форматом "java.properties". |
|
protected |
Создаёт
AbstractResourceBundleProvider со специфицированным formats. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ResourceBundle |
getBundle |
Возвращает
ResourceBundle для заданного baseName и locale. |
protected String |
toBundleName |
Возвращает имя набора для заданного
baseName и
locale, которое предоставляет этот поставщик. |
Подробное описание конструкторов
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, 2023, 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/21/docs/api/java.base/java/util/spi/AbstractResourceBundleProvider.html