Класс Locale.Builder
- java.lang.Object
-
- java.util.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
- См. также:
Locale.forLanguageTag(java.lang.String)
Конструкторы
| Конструктор | Описание |
|---|---|
Builder() |
Создаёт пустой билдер. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Locale.Builder |
addUnicodeLocaleAttribute(String attribute) |
Добавляет атрибут локале Юникода, если он ещё не присутствует, в противном случае без эффекта. |
Locale |
build() |
Возвращает экземпляр |
Locale.Builder |
clear() |
Сбрасывает билдер в его начальное пустое состояние. |
Locale.Builder |
clearExtensions() |
Сбрасывает расширения в их начальное пустое состояние. |
Locale.Builder |
removeUnicodeLocaleAttribute(String attribute) |
Удаляет атрибут локале Юникода, если он присутствует, в противном случае без эффекта. |
Locale.Builder |
setExtension(char key,
String value) |
Устанавливает расширение для данного ключа. |
Locale.Builder |
setLanguage(String language) |
Устанавливает язык. |
Locale.Builder |
setLanguageTag(String languageTag) |
Сбрасывает билдер для соответствия предоставленному тегу языка IETF BCP 47. |
Locale.Builder |
setLocale(Locale locale) |
Сбрасывает |
Locale.Builder |
setRegion(String region) |
Устанавливает регион. |
Locale.Builder |
setScript(String script) |
Устанавливает сценарий. |
Locale.Builder |
setUnicodeLocaleKeyword(String key,
String type) |
Устанавливает тип ключевого слова локале Юникода для данного ключа. |
Locale.Builder |
setVariant(String variant) |
Устанавливает вариант. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Конструкторы
Builder
public Builder()
Создаёт пустой 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)
Сбрасывает Builder для соответствия предоставленному тегу языка IETF BCP 47. Отбрасывает текущее состояние. Null и пустая строка приводят к сбросу билдера, как в clear(). Зарезервированные теги (см. Locale.forLanguageTag(java.lang.String)) преобразуются в каноническую форму перед обработкой. В противном случае тег языка должен быть правильно сформирован (см. Locale), иначе будет выброшено исключение (в отличие от Locale.forLanguageTag, которое просто отбрасывает некорректно сформированные и последующие части тега).
- Параметры:
-
languageTag- тег языка - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиlanguageTagимеет неправильный формат - См. также:
Locale.forLanguageTag(String)
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)
Устанавливает регион. Если регион равен null или пустой строке, регион в этом Builder удаляется. В противном случае регион должен быть правильно сформирован, иначе будет выброшено исключение.
Типичное значение региона — двухбуквенный код ISO 3166 или трёхзначный код области ООН M.49.
Значение страны в Locale , созданной с помощью Builder, всегда приводится к верхнему регистру.
- Параметры:
-
region- регион - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиregionимеет неправильный формат
setVariant
public Locale.Builder setVariant(String variant)
Устанавливает вариант. Если вариант равен null или пустой строке, вариант в этом Builder удаляется. В противном случае он должен состоять из одного или нескольких правильно сформированных подтегов, иначе будет выброшено исключение.
Примечание: Этот метод проверяет, удовлетворяет ли variant синтаксическим требованиям IETF BCP 47 для подтегов варианта, и нормализует значение в строчные буквы. Однако класс Locale не накладывает никаких синтаксических ограничений на вариант, и значение варианта в Locale чувствительно к регистру. Для установки такого варианта используйте конструктор Locale.
- Параметры:
-
variant- вариант - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиvariantимеет неправильный формат
setExtension
public Locale.Builder setExtension(char key,
String value) Устанавливает расширение для заданного ключа. Если значение null или пустая строка, расширение удаляется. В противном случае расширение должно быть правильно сформировано, иначе будет выброшено исключение.
Примечание: Ключ UNICODE_LOCALE_EXTENSION ('u') используется для расширения локали Unicode. Установка значения для этого ключа заменяет все существующие пары ключей/типов локали Unicode теми, которые определены в расширении.
Примечание: Ключ PRIVATE_USE_EXTENSION ('x') используется для кода частного использования. Для корректного формирования значения для этого ключа необходимо, чтобы он содержал подтеги от одного до восьми буквенно-цифровых символов, а не от двух до восьми, как в общем случае.
- Параметры:
-
key- ключ расширения -
value- значение расширения - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиkeyнекорректен илиvalueимеет неправильный формат - См. также:
setUnicodeLocaleKeyword(String, String)
setUnicodeLocaleKeyword
public Locale.Builder setUnicodeLocaleKeyword(String key,
String type) Устанавливает тип ключевого слова локали Unicode для заданного ключа. Если тип равен null, ключевое слово локали Unicode удаляется. В противном случае ключ не должен быть null, и ключ и тип должны быть правильно сформированы, иначе будет выброшено исключение.
Ключи и типы преобразуются в нижний регистр.
Примечание:Установка расширения 'u' через setExtension(char, java.lang.String) заменяет все ключевые слова локали Unicode теми, которые определены в расширении.
- Параметры:
-
key- ключ ключевого слова локали Unicode -
type- тип ключевого слова локали Unicode - Возвращает:
- Этот билдер.
- Исключения:
-
IllformedLocaleException- еслиkeyилиtypeимеют неправильный формат -
NullPointerException- еслиkeyравен null - См. также:
setExtension(char, String)
addUnicodeLocaleAttribute
public Locale.Builder addUnicodeLocaleAttribute(String attribute)
Добавляет атрибут локали Unicode, если он ещё не присутствует; в противном случае никакой реакции нет. Атрибут не должен быть null и должен быть правильно сформирован, иначе будет выброшено исключение.
- Параметры:
-
attribute- атрибут - Возвращает:
- Этот билдер.
- Исключения:
-
NullPointerException- еслиattributeравен null -
IllformedLocaleException- еслиattributeимеет неправильный формат - См. также:
setExtension(char, String)
removeUnicodeLocaleAttribute
public Locale.Builder removeUnicodeLocaleAttribute(String attribute)
Удаляет атрибут локали Unicode, если он присутствует; в противном случае никакой реакции нет. Атрибут не должен быть null и должен быть правильно сформирован, иначе будет выброшено исключение.
Сравнение атрибутов для удаления нечувствительно к регистру.
- Параметры:
-
attribute- атрибут - Возвращает:
- Этот билдер.
- Исключения:
-
NullPointerException- еслиattributeравен null -
IllformedLocaleException- еслиattributeимеет неправильный формат - См. также:
setExtension(char, String)
clear
public Locale.Builder clear()
Сбрасывает билдер в исходное пустое состояние.
- Возвращает:
- Этот билдер.
clearExtensions
public Locale.Builder clearExtensions()
Сбрасывает расширения в исходное пустое состояние. Язык, сценарий, регион и вариант остаются неизменными.
- Возвращает:
- Этот билдер.
- См. также:
setExtension(char, String)
build
public Locale build()
Возвращает экземпляр Locale , созданный на основе полей, заданных в этом билдере.
При создании локали применяются преобразования, указанные в Locale.forLanguageTag(java.lang.String). (Обработка зарезервированных тегов выполняется в setLanguageTag(java.lang.String).)
- Возвращает:
- Локаль.
© 1993, 2020, 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/11/docs/api/java.base/java/util/Locale.Builder.html