Класс 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, 2025, 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/25/docs/api/java.base/java/util/spi/AbstractResourceBundleProvider.html