Spec-Zone.ru › OpenJDK 25

Класс 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, предоставляемого этим поставщиком.

Методы, объявленные в классе 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 — если во время загрузки пакета ресурсов произошла ошибка ввода-вывода

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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