Spec-Zone.ru › OpenJDK 27

Класс ChoiceFormat

java.lang.Object
java.text.Format
java.text.NumberFormat
java.text.ChoiceFormat
Все реализуемые интерфейсы:
Serializable, Cloneable
public class ChoiceFormat extends NumberFormat
ChoiceFormat — конкретный подкласс NumberFormat, который позволяет связать формат с диапазоном чисел. Обычно он используется в MessageFormat для обработки множественного числа. Выбор задаётся возрастающим списком чисел double, где каждый элемент определяет полуоткрытый интервал до следующего элемента:
X matches j if and only if limit[j] ≤ X < limit[j+1]
Если соответствие не найдено, используется либо первый, либо последний индекс — в зависимости от того, слишком мало или слишком велико число (X). Если массив предельных значений не упорядочен по возрастанию, результаты форматирования будут неверными. ChoiceFormat также принимает \u221E как эквивалент бесконечности (INF).

Примечание: ChoiceFormat отличается от других классов Format тем, что объект ChoiceFormat создаётся с помощью конструктора (а не фабричного метода в стиле getInstance). Фабричные методы не нужны, поскольку ChoiceFormat не требует сложной настройки для конкретной локали. Фактически, ChoiceFormat не реализует поведение, зависящее от локали.

Шаблоны

Шаблон ChoiceFormat имеет следующий синтаксис:
Шаблон:
SubPattern *("|" SubPattern)
Подшаблон:
Limit Relation Format
Примечание: каждый следующий подшаблон должен иметь возрастающий интервал Limit-Relation
Предельное значение:
Number / "∞" / "-∞"
Число:
["-"] *(Digit) 1*(Decimal / Digit) *(Digit) [Exponent]
Десятичная часть:
1*(Digit ".") / 1*("." Digit)
Цифра:
0 - 9
Экспонента:
*(Digit) Digit ExponentSymbol Digit *(Digit)
Символ экспоненты:
"e" / "E"
Отношение:
"#" / "<" / "≤"
Формат:
Любые символы, кроме специального символа шаблона «|»
Примечание: отношение ≤ не эквивалентно <&equals;

Чтобы использовать зарезервированный специальный символ шаблона внутри шаблона Формата, его необходимо заключить в одинарные кавычки. Например, new ChoiceFormat("1#'|'foo'|'").format(1) возвращает "|foo|". Чтобы получить буквальную одинарную кавычку, используйте две одинарные кавычки подряд. Например, new ChoiceFormat("1# ''one'' ").format(1) возвращает " 'one' ".

Сведения об использовании

ChoiceFormat можно создать с помощью массива форматов и массива предельных значений либо строки-шаблона. При создании с помощью массивов форматов и предельных значений длины этих массивов должны совпадать. Например:

  • предельные значения = {1,2,3,4,5,6,7}
    форматы = {"Sun","Mon","Tue","Wed","Thur","Fri","Sat"}
  • предельные значения = {0, 1, ChoiceFormat.nextDouble(1)}
    форматы = {"no files", "one file", "many files"}
    (nextDouble можно использовать, чтобы получить следующее большее число double и создать полуоткрытый интервал.)

Ниже приведён пример создания ChoiceFormat с массивами для форматирования и разбора значений:

double[] limits = {1,2,3,4,5,6,7};
String[] dayOfWeekNames = {"Sun","Mon","Tue","Wed","Thur","Fri","Sat"};
ChoiceFormat form = new ChoiceFormat(limits, dayOfWeekNames);
ParsePosition status = new ParsePosition(0);
for (double i = 0.0; i <= 8.0; ++i) {
    status.setIndex(0);
    System.out.println(i + " -> " + form.format(i) + " -> "
                             + form.parse(form.format(i),status));
}

Ниже приведён пример создания ChoiceFormat со строкой-шаблоном:

ChoiceFormat fmt = new ChoiceFormat(
     "-1#is negative| 0#is zero or fraction | 1#is one |1.0<is 1+ |2#is two |2<is more than 2.");

System.out.println(fmt.format(Double.NEGATIVE_INFINITY)); // outputs "is negative"
System.out.println(fmt.format(-1.0)); // outputs "is negative"
System.out.println(fmt.format(0)); // outputs "is zero or fraction"
System.out.println(fmt.format(0.9)); // outputs "is zero or fraction"
System.out.println(fmt.format(1)); // outputs "is one"
System.out.println(fmt.format(1.5)); // outputs "is 1+"
System.out.println(fmt.format(2)); // outputs "is two"
System.out.println(fmt.format(2.1)); // outputs "is more than 2."
System.out.println(fmt.format(Double.NaN)); // outputs "is negative"
System.out.println(fmt.format(Double.POSITIVE_INFINITY)); // outputs "is more than 2."

Для более сложных шаблонов ChoiceFormat можно использовать вместе с MessageFormat, чтобы корректно формировать единственное и множественное число:

MessageFormat msgFmt = new MessageFormat("The disk \"{0}\" contains {1}.");
double[] fileLimits = {0,1,2};
String[] filePart = {"no files","one file","{1,number} files"};
ChoiceFormat fileChoices = new ChoiceFormat(fileLimits, filePart);
msgFmt.setFormatByArgumentIndex(1, fileChoices);
Object[] args = {"MyDisk", 1273};
System.out.println(msgFmt.format(args));
Результат для разных значений fileCount:
The disk "MyDisk" contains no files.
The disk "MyDisk" contains one file.
The disk "MyDisk" contains 1,273 files.
См. раздел MessageFormat, где описаны особенности использования шаблонов MessageFormat внутри шаблона ChoiceFormat.

Синхронизация

Форматы выбора не являются синхронизированными. Рекомендуется создавать отдельные экземпляры формата для каждого потока. Если к формату одновременно обращаются несколько потоков, синхронизацию необходимо выполнять извне.

Примечание к API:
Подкласс может выполнять более последовательную проверку шаблонов, выбрасывая IllegalArgumentException во всех случаях некорректных данных. Поведение этой реализации при некорректных шаблонах описано в Implementation Note.

Этот класс наследует методы экземпляра от NumberFormat, но не использует их; подкласс может переопределить такие методы и выбрасывать UnsupportedOperationException.

Примечание по реализации:
При некорректном шаблоне эта реализация может выбросить исключение или успешно завершить работу, отбросив некорректную часть. NumberFormatException выбрасывается, если limit не удаётся разобрать как числовое значение, а IllegalArgumentException выбрасывается, если отсутствует SubPattern или интервалы не упорядочены по возрастанию. Отбрасывание некорректной части может привести к созданию ChoiceFormat с пустыми limits и formats.
Начиная с:
1.1
См. также:
  • DecimalFormat
  • MessageFormat
  • Сериализованная форма

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в классе NumberFormat

NumberFormat.Field, NumberFormat.Style
Модификатор и тип Класс Описание
static class  NumberFormat.Field
Определяет константы, используемые в качестве ключей атрибутов в AttributedCharacterIterator, возвращаемом из NumberFormat.formatToCharacterIterator, и в качестве идентификаторов полей в FieldPosition.
static enum  NumberFormat.Style
Стиль числового формата.

Краткое описание полей

Поля, объявленные в классе NumberFormat

FRACTION_FIELD, INTEGER_FIELD
Модификатор и тип Поле Описание
static final int FRACTION_FIELD
Константа поля, используемая для создания объекта FieldPosition.
static final int INTEGER_FIELD
Константа поля, используемая для создания объекта FieldPosition.

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

Конструктор Описание
ChoiceFormat(double[] limits, String[] formats)
Создаёт объект с предельными значениями и соответствующими форматами.
ChoiceFormat(String newPattern)
Создаёт ChoiceFormat с предельными значениями и соответствующими форматами, заданными на основе шаблона.

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

Модификатор и тип Метод Описание
void applyPattern(String newPattern)
Применяет заданный шаблон к этому объекту ChoiceFormat.
Object clone()
Переопределяет Cloneable
boolean equals(Object obj)
Сравнивает указанный объект с этим ChoiceFormat на равенство.
StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition status)
Возвращает шаблон с отформатированным числом double.
StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition status)
Специализация метода format.
Object[] getFormats()
Возвращает форматы этого объекта ChoiceFormat.
double[] getLimits()
Возвращает предельные значения этого объекта ChoiceFormat.
int hashCode()
Возвращает хеш-код этого ChoiceFormat.
boolean isStrict()
Возвращает true, если этот формат выполняет строгий разбор чисел; в противном случае возвращает false.
static final double nextDouble(double d)
Находит наименьшее число double, большее d.
static double nextDouble(double d, boolean positive)
Находит наименьшее число double, большее d (если positive — true), или наибольшее число double, меньшее d (если positive — false).
Number parse(String text, ParsePosition status)
Разбирает входной текст, начиная с индекса, заданного ParsePosition, как Double.
static final double previousDouble(double d)
Находит наибольшее число double, меньшее d.
void setChoices(double[] limits, String[] formats)
Задаёт варианты выбора, используемые при форматировании.
void setStrict(boolean strict)
Изменяет степень снисходительности при разборе.
String toPattern()
Возвращает шаблон string, представляющий limits и formats этого объекта ChoiceFormat.
String toString()
Возвращает строку, идентифицирующую этот ChoiceFormat, для отладки.

Методы, объявленные в классе NumberFormat

format, format, format, getAvailableLocales, getCompactNumberInstance, getCompactNumberInstance, getCurrency, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getMaximumFractionDigits, getMaximumIntegerDigits, getMinimumFractionDigits, getMinimumIntegerDigits, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, getRoundingMode, isGroupingUsed, isParseIntegerOnly, parse, parseObject, setCurrency, setGroupingUsed, setMaximumFractionDigits, setMaximumIntegerDigits, setMinimumFractionDigits, setMinimumIntegerDigits, setParseIntegerOnly, setRoundingMode
Модификатор и тип Метод Описание
final String format(double number)
Специализация метода format.
final String format(long number)
Специализация метода format.
StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
Форматирует число и добавляет полученный текст в указанный буфер строк.
static Locale[] getAvailableLocales()
Возвращает массив всех локалей, для которых методы get*Instance этого класса могут возвращать локализованные экземпляры.
static NumberFormat getCompactNumberInstance()
Возвращает компактный числовой формат для локали FORMAT по умолчанию со стилем форматирования "SHORT".
static NumberFormat getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)
Возвращает компактный числовой формат для указанной locale и formatStyle.
Currency getCurrency()
Возвращает валюту, используемую этим числовым форматом при форматировании денежных значений.
static final NumberFormat getCurrencyInstance()
Возвращает валютный формат для текущей локали FORMAT по умолчанию.
static NumberFormat getCurrencyInstance(Locale inLocale)
Возвращает валютный формат для указанной локали.
static final NumberFormat getInstance()
Возвращает числовой формат общего назначения для текущей локали FORMAT по умолчанию.
static NumberFormat getInstance(Locale inLocale)
Возвращает числовой формат общего назначения для указанной локали.
static final NumberFormat getIntegerInstance()
Возвращает целочисленный числовой формат для текущей локали FORMAT по умолчанию.
static NumberFormat getIntegerInstance(Locale inLocale)
Возвращает целочисленный числовой формат для указанной локали.
int getMaximumFractionDigits()
Возвращает максимальное количество цифр, допустимое при форматировании в дробной части числа.
int getMaximumIntegerDigits()
Возвращает максимальное количество цифр, допустимое при форматировании в целой части числа.
int getMinimumFractionDigits()
Возвращает минимальное количество цифр, допустимое при форматировании в дробной части числа.
int getMinimumIntegerDigits()
Возвращает минимальное количество цифр, допустимое при форматировании в целой части числа.
static final NumberFormat getNumberInstance()
Возвращает числовой формат общего назначения для текущей локали FORMAT по умолчанию.
static NumberFormat getNumberInstance(Locale inLocale)
Возвращает числовой формат общего назначения для указанной локали.
static final NumberFormat getPercentInstance()
Возвращает процентный формат для текущей локали FORMAT по умолчанию.
static NumberFormat getPercentInstance(Locale inLocale)
Возвращает процентный формат для указанной локали.
RoundingMode getRoundingMode()
Возвращает RoundingMode, используемый в этом NumberFormat.
boolean isGroupingUsed()
Возвращает true, если в этом формате используется группировка.
boolean isParseIntegerOnly()
Возвращает true, если этот формат разбирает числа только как целые.
Number parse(String source)
Разбирает текст с начала указанной строки и создаёт Number.
final Object parseObject(String source, ParsePosition pos)
Разбирает текст из указанной строки и создаёт объект.
void setCurrency(Currency currency)
Задаёт валюту, используемую этим числовым форматом при форматировании денежных значений.
void setGroupingUsed(boolean newValue)
Задаёт, будет ли в этом формате использоваться группировка.
void setMaximumFractionDigits(int newValue)
Задаёт максимальное количество цифр, допустимое при форматировании в дробной части числа.
void setMaximumIntegerDigits(int newValue)
Задаёт максимальное количество цифр, допустимое при форматировании в целой части числа.
void setMinimumFractionDigits(int newValue)
Задаёт минимальное количество цифр, допустимое при форматировании в дробной части числа.
void setMinimumIntegerDigits(int newValue)
Задаёт минимальное количество цифр, допустимое при форматировании в целой части числа.
void setParseIntegerOnly(boolean value)
Задаёт, следует ли разбирать числа только как целые.
void setRoundingMode(RoundingMode roundingMode)
Задаёт RoundingMode, используемый в этом NumberFormat.

Методы, объявленные в классе Format

format, formatToCharacterIterator, parseObject
Модификатор и тип Метод Описание
final String format(Object obj)
Форматирует объект, создавая строку.
AttributedCharacterIterator formatToCharacterIterator(Object obj)
Форматирует Object, создавая AttributedCharacterIterator.
Object parseObject(String source)
Разбирает текст с начала указанной строки и создаёт объект.

Методы, объявленные в классе Object

finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова уведомления или прерывания.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

ChoiceFormat

public ChoiceFormat(String newPattern)
Создает ChoiceFormat с пределами и соответствующими форматами на основе шаблона. Синтаксис и связанные с ошибками оговорки для шаблона ChoiceFormat описаны в разделе Шаблоны. В отличие от ChoiceFormat(double[], String[]), этот конструктор вызовет исключение IllegalArgumentException, если limits расположены не в порядке возрастания.
Параметры:
newPattern — новая строка шаблона
Исключения:
NullPointerException — если newPattern равно null
IllegalArgumentException — если newPattern нарушает синтаксис шаблона
См. также:
  • applyPattern(String)

ChoiceFormat

public ChoiceFormat(double[] limits, String[] formats)
Создает объект с пределами и соответствующими форматами.
Параметры:
limits — пределы в порядке возрастания
formats — соответствующие строки формата
Исключения:
NullPointerException — если limits или formats равно null
IllegalArgumentException — если длины limits и formats не равны
См. также:
  • setChoices(double[], String[])

Подробное описание методов

applyPattern

public void applyPattern(String newPattern)
Применяет заданный шаблон к этому объекту ChoiceFormat. Синтаксис и связанные с ошибками оговорки для шаблона ChoiceFormat описаны в разделе Шаблоны. В отличие от setChoices(double[], String[]), этот метод вызовет исключение IllegalArgumentException, если limits расположены не в порядке возрастания.
Параметры:
newPattern — строка шаблона
Исключения:
NullPointerException — если newPattern равно null
IllegalArgumentException — если newPattern нарушает синтаксис шаблона
См. также:
  • ChoiceFormat(String)

toPattern

public String toPattern()
Возвращает шаблон string, представляющий limits и formats этого объекта ChoiceFormat. Возвращенный string не обязательно совпадает с исходным string, переданным в applyPattern(String) или ChoiceFormat(String).
Возвращает:
шаблон string, представляющий limits и formats этого объекта ChoiceFormat
См. также:
  • applyPattern(String)

setChoices

public void setChoices(double[] limits, String[] formats)
Задает варианты, используемые при форматировании.
Параметры:
limits — содержит верхнее значение, которое требуется разобрать с помощью этого формата; значения должны быть отсортированы по возрастанию. При форматировании X выбирается вариант i, для которого limit[i] ≤ X < limit[i+1]. Если массив пределов не упорядочен по возрастанию, результаты форматирования будут неверными.
formats — форматы, используемые для каждого предела.
Исключения:
NullPointerException — если limits или formats равно null
IllegalArgumentException — если длины limits и formats не равны

getLimits

public double[] getLimits()
Возвращает пределы этого объекта ChoiceFormat.
Возвращает:
пределы этого объекта ChoiceFormat

getFormats

public Object[] getFormats()
Возвращает форматы этого объекта ChoiceFormat.
Возвращает:
форматы этого объекта ChoiceFormat

format

public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition status)
Специализированная версия метода format. Фактически этот метод вызывает format(double, StringBuffer, FieldPosition). Поэтому поддерживаемый диапазон значений типа long ограничен диапазоном, представимым типом double. На практике это никогда не станет ограничением.
Определен в:
format в классе NumberFormat
Параметры:
number — число для форматирования и подстановки.
toAppendTo — буфер, в который добавляется текст.
status — игнорируется; полезный статус не возвращается.
Возвращает:
отформатированный StringBuffer
Исключения:
ArrayIndexOutOfBoundsException — если limits или formats этого объекта ChoiceFormat пусты
NullPointerException — если toAppendTo равно null
См. также:
  • Format.format(Object)

format

public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition status)
Возвращает шаблон с отформатированным значением типа double.
Определен в:
format в классе NumberFormat
Параметры:
number — число для форматирования и подстановки.
toAppendTo — буфер, в который добавляется текст.
status — игнорируется; полезный статус не возвращается.
Возвращает:
отформатированный StringBuffer
Исключения:
ArrayIndexOutOfBoundsException — если limits или formats этого объекта ChoiceFormat пусты
NullPointerException — если toAppendTo равно null
См. также:
  • Format.format(Object)

parse

public Number parse(String text, ParsePosition status)
Разбирает входной текст начиная с индекса, указанного в ParsePosition, как Double. Возвращаемое значение — limit, соответствующее format, которое является самой длинной подстрокой входного текста. Поиск выполняется в порядке возрастания; если текст одинаково хорошо соответствует нескольким format, возвращается первое совпавшее limit. Если совпадений нет, возвращается Double.NaN.

Например:

var fmt = new ChoiceFormat("0#foo|1#bar|2#baz");
fmt.parse("baz", new ParsePosition(0)); // returns 2.0
fmt.parse("quux", new ParsePosition(0)); // returns NaN
Определен в:
parse в классе NumberFormat
Параметры:
text — исходный текст.
status — входной и выходной параметр. При вызове поле status.index указывает первый символ исходного текста, который следует разобрать. При выходе, если ошибок не возникло, status.index устанавливается в позицию первого неразобранного символа исходного текста. При выходе, если произошла ошибка, status.index не изменяется, а status.errorIndex устанавливается в позицию первого символа, вызвавшего сбой разбора.
Возвращает:
Число, представляющее limit, соответствующее разобранному format, или Double.NaN, если разбор завершился неудачно.
Исключения:
NullPointerException — если status равно null или если text равно null и список строк вариантов не пуст.
См. также:
  • NumberFormat.isStrict()

isStrict

public boolean isStrict()
Описание скопировано из класса: NumberFormat
Возвращает true, если этот формат выполняет строгий разбор чисел; в противном случае возвращает false.
Переопределяет:
isStrict в классе NumberFormat
Возвращает:
true, если этот формат выполняет строгий разбор чисел; в противном случае возвращает false
С момента:
23
См. также:
  • Раздел о строгости разбора
  • NumberFormat.setStrict(boolean)

setStrict

public void setStrict(boolean strict)
Описание скопировано из класса: NumberFormat
Изменяет значение строгости разбора. Разбор может быть строгим или нестрогим; по умолчанию он нестрогий.
Переопределяет:
setStrict в классе NumberFormat
Параметры:
strict — true, если разбор должен выполняться строго; в противном случае — false
С момента:
23
См. также:
  • Раздел о строгости разбора
  • NumberFormat.isStrict()

nextDouble

public static final double nextDouble(double d)
Находит наименьшее значение типа double, большее d. Если NaN, возвращает то же значение.

Используется для создания полуоткрытых интервалов.

Примечание по реализации:
Эквивалентно вызову Math.nextUp(d)
Параметры:
d — опорное значение
Возвращает:
наименьшее значение типа double, большее d
См. также:
  • previousDouble(double)

nextDouble

public static double nextDouble(double d, boolean positive)
Находит наименьшее значение типа double, большее d (если positive равно true), или наибольшее значение типа double, меньшее d (если positive равно false). Если NaN, возвращает то же значение.
Примечание по реализации:
Эквивалентно вызову positive ? Math.nextUp(d) : Math.nextDown(d)
Параметры:
d — опорное значение
positive — true, если требуется наименьшее значение типа double; в противном случае — false
Возвращает:
наименьшее или наибольшее значение типа double

previousDouble

public static final double previousDouble(double d)
Находит наибольшее значение типа double, меньшее d. Если NaN, возвращает то же значение.
Примечание по реализации:
Эквивалентно вызову Math.nextDown(d)
Параметры:
d — опорное значение
Возвращает:
наибольшее значение типа double, меньшее d
См. также:
  • nextDouble(double)

clone

public Object clone()
Переопределяет Cloneable
Переопределяет:
clone в классе NumberFormat
Возвращает:
копию этого экземпляра.
См. также:
  • Cloneable

hashCode

public int hashCode()
Возвращает хеш-код этого ChoiceFormat.
Переопределяет:
hashCode в классе NumberFormat
Требования к реализации:
Этот метод вычисляет значение хеш-кода с использованием значений, возвращаемых методами getFormats() и getLimits().
Возвращает:
хеш-код этого ChoiceFormat
См. также:
  • Object.hashCode()

toString

public String toString()
Возвращает строку, идентифицирующую этот ChoiceFormat, для отладки.
Переопределяет:
toString в классе Object
Возвращает:
строку, идентифицирующую этот ChoiceFormat, для отладки

equals

public boolean equals(Object obj)
Сравнивает указанный объект с этим ChoiceFormat на предмет равенства. Возвращает true, если объект также является ChoiceFormat и оба формата форматируют любое значение одинаково.
Переопределяет:
equals в классе NumberFormat
Требования к реализации:
Этот метод проверяет равенство, определяя идентичность класса на основе getClass(), а не instanceof. Поэтому в методах equals подклассов ни один экземпляр этого класса не должен считаться равным экземпляру подкласса.
Параметры:
obj — объект для сравнения на равенство
Возвращает:
true, если указанный объект равен этому ChoiceFormat
См. также:
  • Object.equals(Object)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, обзоры основных понятий, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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