Класс 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) Добавляет атрибут локали Unicode, если он ещё не присутствует, в противном случае не имеет эффекта. |
Locale |
build() Возвращает экземпляр |
Locale.Builder |
clear() Сбрасывает билдер в его исходное, пустое состояние. |
Locale.Builder |
clearExtensions() Сбрасывает расширения в их исходное, пустое состояние. |
Locale.Builder |
removeUnicodeLocaleAttribute(String attribute) Удаляет атрибут локали Unicode, если он присутствует, в противном случае не имеет эффекта. |
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) Устанавливает тип ключевого слова локали Unicode для данного ключа. |
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- локали - Возвращает:
- Этот builder.
- Выбрасывает:
-
IllformedLocaleException- еслиlocaleимеет какие-либо неправильно сформированные поля. -
NullPointerException- еслиlocaleравно null.
setLanguageTag
public Locale.Builder setLanguageTag(String languageTag)
Сбрасывает Builder для соответствия предоставленному тегу языка IETF BCP 47. Отбрасывает существующее состояние. Null и пустая строка приводят к сбросу builder, как в clear(). Аннулированные теги (см. Locale.forLanguageTag(java.lang.String)) преобразуются в каноническую форму перед обработкой. В противном случае тег языка должен быть правильно сформирован (см. Locale), в противном случае генерируется исключение (в отличие от Locale.forLanguageTag, которое просто отбрасывает неправильно сформированные и последующие части тега).
- Параметры:
-
languageTag- тег языка - Возвращает:
- Этот builder.
- Выбрасывает:
-
IllformedLocaleException- еслиlanguageTagнеправильно сформирован - См. также:
Locale.forLanguageTag(String)
setLanguage
public Locale.Builder setLanguage(String language)
Устанавливает язык. Если language пустая строка или null, язык в этой Builder удаляется. В противном случае язык должен быть правильно сформирован, в противном случае генерируется исключение.
Типичное значение языка — двух- или трёхбуквенный код языка, определённый в ISO639.
- Параметры:
-
language- язык - Возвращает:
- Этот builder.
- Выбрасывает:
-
IllformedLocaleException- еслиlanguageнеправильно сформирован
setScript
public Locale.Builder setScript(String script)
Устанавливает сценарий. Если script null или пустая строка, сценарий в этом Builder удаляется. В противном случае сценарий должен быть правильно сформирован, в противном случае генерируется исключение.
Типичное значение сценария — четырёхбуквенный код сценария, определённый в ISO 15924.
- Параметры:
-
script- сценарий - Возвращает:
- Этот builder.
- Выбрасывает:
-
IllformedLocaleException- еслиscriptнеправильно сформирован
setRegion
public Locale.Builder setRegion(String region)
Устанавливает регион. Если регион null или пустая строка, регион в этом Builder удаляется. В противном случае регион должен быть правильно сформирован, в противном случае генерируется исключение.
Типичное значение региона — двухбуквенный код ISO 3166 или трёхзначный код области ООН M.49.
Значение страны в Locale , созданном с помощью Builder , всегда нормализуется до верхнего регистра.
- Параметры:
-
region- регион - Возвращает:
- Этот builder.
- Выбрасывает:
-
IllformedLocaleException- еслиregionнеправильно сформирован
setVariant
public Locale.Builder setVariant(String variant)
Устанавливает вариант. Если вариант null или пустая строка, вариант в этом Builder удаляется. В противном случае он должен состоять из одного или нескольких правильно сформированных подтегов, в противном случае генерируется исключение.
Примечание: Этот метод проверяет, удовлетворяет ли variant синтаксическим требованиям подтега варианта IETF BCP 47, и нормализует значение до строчных букв. Однако класс Locale не накладывает никаких синтаксических ограничений на вариант, и значение варианта в Locale чувствительно к регистру. Чтобы установить такой вариант, используйте конструктор Locale.
- Параметры:
-
variant- вариант - Возвращает:
- Этот builder.
- Выбрасывает:
-
IllformedLocaleException- еслиvariantнеправильно сформирован
setExtension
public Locale.Builder setExtension(char key,
String value) Устанавливает расширение для данного ключа. Если значение null или пустая строка, расширение удаляется. В противном случае расширение должно быть правильно сформировано, в противном случае генерируется исключение.
Примечание: Ключ UNICODE_LOCALE_EXTENSION ('u') используется для расширения локали Юникод. Установка значения для этого ключа заменяет любые существующие пары ключей/типов локали Юникод теми, которые определены в расширении.
Примечание: Ключ PRIVATE_USE_EXTENSION ('x') используется для кода частного использования. Для правильной формы значения этого ключа требуется только иметь подтеги от одного до восьми буквенно-цифровых символов, а не от двух до восьми, как в общем случае.
- Параметры:
-
key- ключ расширения -
value- значение расширения - Возвращает:
- Этот builder.
- Выбрасывает:
-
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 локали - Возвращает:
- Этот builder.
- Выбрасывает:
-
IllformedLocaleException- еслиkeyилиtypeнеправильно сформированы -
NullPointerException- еслиkeyравно null - См. также:
setExtension(char, String)
addUnicodeLocaleAttribute
public Locale.Builder addUnicodeLocaleAttribute(String attribute)
Добавляет атрибут локали Юникод, если он ещё не присутствует, в противном случае не оказывает никакого влияния. Атрибут не должен быть null и должен быть правильно сформирован, в противном случае генерируется исключение.
- Параметры:
-
attribute- атрибут - Возвращает:
- Этот builder.
- Выбрасывает:
-
NullPointerException- еслиattributeравно null -
IllformedLocaleException- еслиattributeнеправильно сформирован - См. также:
setExtension(char, String)
removeUnicodeLocaleAttribute
public Locale.Builder removeUnicodeLocaleAttribute(String attribute)
Удаляет атрибут локали Юникод, если он присутствует, в противном случае не оказывает никакого влияния. Атрибут не должен быть null и должен быть правильно сформирован, в противном случае генерируется исключение.
Сравнение атрибутов для удаления нечувствительно к регистру.
- Параметры:
-
attribute- атрибут - Возвращает:
- Этот builder.
- Выбрасывает:
-
NullPointerException- еслиattributeравно null -
IllformedLocaleException- еслиattributeнеправильно сформирован - См. также:
setExtension(char, String)
clear
public Locale.Builder clear()
Сбрасывает builder в его начальное пустое состояние.
- Возвращает:
- Этот builder.
clearExtensions
public Locale.Builder clearExtensions()
Сбрасывает расширения в их начальное пустое состояние. Язык, сценарий, регион и вариант остаются неизменными.
- Возвращает:
- Этот builder.
- См. также:
setExtension(char, String)
build
public Locale build()
Возвращает экземпляр Locale , созданный из полей, установленных в этом builder.
Это применяется к преобразованиям, перечисленным в Locale.forLanguageTag(java.lang.String) при построении Locale. (Аннулированные теги обрабатываются в setLanguageTag(java.lang.String)).
- Возвращает:
- Locale.
© 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.