Spec-Zone.ru › OpenJDK 24

Класс 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
См. также:
  • Таблицы ресурсов и именованные модули

Краткое описание конструкторов

AbstractResourceBundleProvider()
AbstractResourceBundleProvider(String... formats)
Модификатор Конструктор Описание
protected
Создаёт AbstractResourceBundleProvider с форматом "java.properties".
protected
Создаёт AbstractResourceBundleProvider со специфическим formats.

Краткое описание методов

Модификатор и тип Метод Описание
ResourceBundle getBundle(String baseName, Locale locale)
Возвращает ResourceBundle для заданного baseName и locale.
protected String toBundleName(String baseName, Locale locale)
Возвращает имя пакета для заданного baseName и 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, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/spi/AbstractResourceBundleProvider.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API