Класс Locale.Builder
- Вложенный класс:
- Locale
public static final class Locale.Builder extends Object
Builder используется для построения экземпляров Locale на основе значений, заданных методами-сеттерами. В отличие от конструкторов Locale, Builder проверяет, удовлетворяет ли значение, заданное сеттером, требованиям синтаксиса, определённым классом Locale. Объект Locale , созданный с помощью Builder, является корректным и может быть преобразован в корректный тег языка IETF BCP 47 без потери информации. Примечание: Класс Locale не накладывает никаких синтаксических ограничений на вариант, в то время как BCP 47 требует, чтобы каждый подтег варианта содержал от 5 до 8 буквенно-цифровых символов или один цифровой символ, за которым следуют 3 буквенно-цифровых символа. Метод setVariant выбрасывает IllformedLocaleException для варианта, который не соответствует этому ограничению. Если необходимо поддерживать такой вариант, используйте конструктор Locale. Однако имейте в виду, что объект Locale , созданный таким образом, может потерять информацию о варианте при преобразовании в тег языка BCP 47.
Следующий пример демонстрирует создание объекта Locale с помощью Builder.
Locale aLocale = new Builder().setLanguage("sr").setScript("Latn").setRegion("RS").build();
Бильдеры могут быть повторно использованы; clear() сбрасывает все поля в их значения по умолчанию.
- С тех пор как:
- 1.7
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Builder() |
Создаёт пустой билдер. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Locale.Builder |
addUnicodeLocaleAttribute |
Добавляет атрибут Юникод локали, если он ещё не присутствует, в противном случае не оказывает никакого эффекта. |
Locale |
build() |
Возвращает экземпляр Locale , созданный из полей, установленных в этом билдере. |
Locale.Builder |
clear() |
Сбрасывает билдер в его исходное, пустое состояние. |
Locale.Builder |
clearExtensions() |
Сбрасывает расширения в их исходное, пустое состояние. |
Locale.Builder |
removeUnicodeLocaleAttribute |
Удаляет атрибут Юникод локали, если он присутствует, в противном случае не оказывает никакого эффекта. |
Locale.Builder |
setExtension |
Устанавливает расширение для заданного ключа. |
Locale.Builder |
setLanguage |
Устанавливает язык. |
Locale.Builder |
setLanguageTag |
Сбрасывает билдер, чтобы он соответствовал предоставленному тегу языка IETF BCP 47. |
Locale.Builder |
setLocale |
Сбрасывает Builder для соответствия предоставленному locale. |
Locale.Builder |
setRegion |
Устанавливает регион. |
Locale.Builder |
setScript |
Устанавливает скрипт. |
Locale.Builder |
setUnicodeLocaleKeyword |
Устанавливает тип ключа Юникод локали для заданного ключа. |
Locale.Builder |
setVariant |
Устанавливает вариант. |
Подробное описание конструкторов
Конструктор
public Builder()
Подробное описание методов
setLocale
public Locale.Builder setLocale(Locale locale)
Builder для соответствия предоставленному locale. Существующее состояние отбрасывается. Все поля локали должны быть корректными, см. Locale.
Локали с некорректными полями вызывают исключение IllformedLocaleException, за исключением следующих трёх случаев, которые принимаются по соображениям совместимости:
- Locale("ja", "JP", "JP") обрабатывается как "ja-JP-u-ca-japanese"
- Locale("th", "TH", "TH") обрабатывается как "th-TH-u-nu-thai"
- Locale("no", "NO", "NY") обрабатывается как "nn-NO"
- Параметры:
-
locale- локали - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиlocaleимеет некорректные поля. -
NullPointerException- еслиlocaleравен null.
setLanguageTag
public Locale.Builder setLanguageTag(String languageTag)
clear(). Устаревшие теги (см. Locale.forLanguageTag(java.lang.String)) преобразуются в каноническую форму перед обработкой. В противном случае, тег языка должен быть корректным (см. Locale), иначе выбрасывается исключение (в отличие от Locale.forLanguageTag, которая просто отбрасывает некорректные и последующие части тега).- Параметры:
-
languageTag- тег языка - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиlanguageTagимеет некорректный формат - См. также:
setLanguage
public Locale.Builder setLanguage(String language)
language — пустая строка или null, язык в этом Builder удаляется. В противном случае язык должен быть корректным, иначе выбрасывается исключение. Типичное значение языка — двух- или трёхбуквенный код языка, определённый в ISO639.
- Параметры:
-
language- язык - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиlanguageимеет некорректный формат
setScript
public Locale.Builder setScript(String script)
script равен null или пустой строке, сценарий в этом Builder удаляется. В противном случае сценарий должен быть корректным, иначе выбрасывается исключение. Типичное значение сценария — четырёхбуквенный код сценария, определённый в ISO 15924.
- Параметры:
-
script- сценарий - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиscriptимеет некорректный формат
setRegion
public Locale.Builder setRegion(String region)
Builder удаляется. В противном случае регион должен быть корректным, иначе выбрасывается исключение. Типичное значение региона — двухбуквенный код ISO 3166 или трёхзначный код области ООН М.49.
Значение страны в Locale созданной Builder всегда нормализуется к верхнему регистру.
- Параметры:
-
region- регион - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиregionимеет некорректный формат
setVariant
public Locale.Builder setVariant(String variant)
Builder удаляется. В противном случае он должен состоять из одного или нескольких корректных подтегов, иначе выбрасывается исключение. Примечание: Этот метод проверяет, удовлетворяет ли variant требованиям синтаксиса подтега варианта IETF BCP 47, и нормализует значение к строчным буквам. Однако, класс Locale не накладывает никаких синтаксических ограничений на вариант, и значение варианта в Locale чувствительно к регистру. Для установки такого варианта используйте конструктор Locale.
- Параметры:
-
variant- вариант - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиvariantимеет некорректный формат
setExtension
public Locale.Builder setExtension(char key, String value)
Примечание: Ключ UNICODE_LOCALE_EXTENSION ('u') используется для расширения локали Юникода. Установка значения для этого ключа заменяет все существующие пары ключ/тип локали Юникода теми, которые определены в расширении.
Примечание: Ключ PRIVATE_USE_EXTENSION ('x') используется для кода частного использования. Для корректности значения этого ключа достаточно иметь подтеги из одной до восьми буквенно-цифровых символов, а не от двух до восьми, как в общем случае.
- Параметры:
-
key- ключ расширения -
value- значение расширения - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиkeyнекорректен илиvalueимеет некорректный формат - См. также:
setUnicodeLocaleKeyword
public Locale.Builder setUnicodeLocaleKeyword(String key, String type)
Ключи и типы преобразуются в нижний регистр.
Примечание: Установка расширения 'u' через setExtension(char, java.lang.String) заменяет все ключевые слова локали Юникода теми, которые определены в расширении.
- Параметры:
-
key- ключ ключевого слова локали Юникода -
type- тип ключевого слова локали Юникода - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиkeyилиtypeимеют некорректный формат -
NullPointerException- еслиkeyравен null - См. также:
addUnicodeLocaleAttribute
public Locale.Builder addUnicodeLocaleAttribute(String attribute)
- Параметры:
-
attribute- атрибут - Возвращает:
- Этот билдер.
- Исключения:
-
NullPointerException- еслиattributeравен null -
IllformedLocaleException- еслиattributeимеет некорректный формат - См. также:
removeUnicodeLocaleAttribute
public Locale.Builder removeUnicodeLocaleAttribute(String attribute)
Сравнение атрибутов для удаления нечувствительно к регистру.
- Параметры:
-
attribute- атрибут - Возвращает:
- Этот билдер.
- Исключения:
-
NullPointerException- еслиattributeравен null -
IllformedLocaleException- еслиattributeимеет некорректный формат - См. также:
clear
public Locale.Builder clear()
- Возвращает:
- Этот билдер.
clearExtensions
public Locale.Builder clearExtensions()
- Возвращает:
- Этот билдер.
- См. также:
build
public Locale build()
Locale, созданный из полей, установленных в этом билдере. Это применяет преобразования, перечисленные в Locale.forLanguageTag(java.lang.String) при построении Locale. (Устаревшие теги обрабатываются в setLanguageTag(java.lang.String).)
- Возвращает:
- Locale.
© 1993, 2021, 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/17/docs/api/java.base/java/util/Locale.Builder.html