Класс Runtime.Version

Все реализованные интерфейсы:
Comparable<Runtime.Version>
Вложенный класс:
Runtime
public static final class Runtime.Version
extends Object
implements Comparable<Runtime.Version>

Представление строки версии для реализации платформы Java SE. Строка версии состоит из номера версии, за которым могут следовать информация о предварительной версии и сборке.

Номера версий

Номер версии, $VNUM, представляет собой непустую последовательность элементов, разделенных точками (U+002E). Элемент либо равен нулю, либо является целым неотрицательным числом без ведущих нулей. Последний элемент номера версии не должен быть нулём. При инкрементировании элемента все последующие элементы удаляются. Формат:

[1-9][0-9]*((\.0)*\.[1-9][0-9]*)*

Последовательность может иметь произвольную длину, но первые четыре элемента имеют определённое значение:

$FEATURE.$INTERIM.$UPDATE.$PATCH
  • $FEATURE — Счётчик релиза функций, увеличивается при каждом релизе функций независимо от содержимого релиза. Функции могут быть добавлены в релиз функций, а также удалены, если об этом было сообщено не менее чем за один релиз функций до этого. Несовместимые изменения могут быть внесены, если это оправдано.

  • $INTERIM — Счётчик промежуточного релиза, увеличивается для релизов, не содержащих функций, которые содержат совместимые исправления ошибок и улучшения, но не содержат несовместимых изменений, удаления функций и изменений стандартных API.

  • $UPDATE — Счётчик релиза обновления, увеличивается для совместимых обновлений, которые исправляют проблемы безопасности, регрессии и ошибки в новых функциях.

  • $PATCH — Счётчик экстренного патча, увеличивается только при необходимости создания экстренного релиза для исправления критической проблемы.

Пятый и последующие элементы номера версии предназначены для использования разработчиками платформ для идентификации специфичных для реализаций патчей.

Номер версии никогда не имеет завершающих нулевых элементов. Если элемент и все последующие логически имеют значение ноль, то они опускаются.

Последовательность чисел в номере версии сравнивается с другой подобной последовательностью по порядку; например, 10.0.4 меньше, чем 10.1.2. Если одна последовательность короче другой, то отсутствующие элементы короче последовательности считаются меньшими, чем соответствующие элементы более длинной последовательности; например, 10.0.2 меньше, чем 10.0.2.1.

Строки версий

Строка версии, $VSTR, представляет собой номер версии $VNUM, как описано выше, с дополнительной информацией о предварительной версии и сборке в одном из следующих форматов:

$VNUM(-$PRE)?\+$BUILD(-$OPT)?
$VNUM-$PRE(-$OPT)?
$VNUM(+-$OPT)?

где:

  • $PRE, соответствующий ([a-zA-Z0-9]+) — Идентификатор предварительной версии. Обычно ea, для потенциально нестабильного раннего доступа, находящегося в активной разработке, или internal, для внутренней сборки разработчиков.

  • $BUILD, соответствующий (0|[1-9][0-9]*) — Номер сборки, увеличивается при каждом продвижении сборки. $BUILD сбрасывается до 1 при инкрементировании любой части $VNUM.

  • $OPT, соответствующий ([-a-zA-Z0-9.]+) — Дополнительная информация о сборке, если требуется. В случае сборки internal она часто содержит дату и время сборки.

Строка версии 10-ea соответствует $VNUM = "10" и $PRE = "ea". Строка версии 10+-ea соответствует $VNUM = "10" и $OPT = "ea".

При сравнении двух строк версии значение $OPT, если оно присутствует, может или не может иметь значение в зависимости от выбранного метода сравнения. Методы сравнения compareTo() и compareToIgnoreOptional() должны использоваться последовательно с соответствующими методами equals() и equalsIgnoreOptional().

Короткая строка версии, $SVSTR, часто полезная в менее формальных контекстах, представляет собой номер версии, за которым необязательно следует идентификатор предварительной версии:

$VNUM(-$PRE)?

Это класс базирующийся на значениях; использование операций, чувствительных к идентификатору (включая равенство ссылок (==), хэш-код идентификатора или синхронизацию) на экземплярах Version может привести к непредсказуемым результатам и следует избегать.

С момента:
9

Методы

Модификатор и тип Метод Описание
Optional<Integer> build()

Возвращает номер сборки.

int compareTo​(Runtime.Version obj)

Сравнивает эту версию с другой.

int compareToIgnoreOptional​(Runtime.Version obj)

Сравнивает эту версию с другой, игнорируя необязательную информацию о сборке.

boolean equals​(Object obj)

Определяет, равна ли эта Version другому объекту.

boolean equalsIgnoreOptional​(Object obj)

Определяет, равна ли эта Version другому объекту, игнорируя необязательную информацию о сборке.

int feature()

Возвращает значение элемента функции номера версии.

int hashCode()

Возвращает хэш-код этой версии.

int interim()

Возвращает значение элемента промежуточного номера версии или ноль, если он отсутствует.

int major()

Устарело.

Начиная с Java SE 10, первый элемент номера версии не является номером основного релиза, а счётчиком релиза функции, увеличивающимся каждый раз при релизе, связанном с временем.

int minor()

Устарело.

Начиная с Java SE 10, второй элемент номера версии не является номером версии подрелиза, а счётчиком промежуточного релиза, увеличивающимся при каждом промежуточном релизе.

Optional<String> optional()

Возвращает необязательную дополнительную информацию о сборке.

static Runtime.Version parse​(String s)

Парсит заданную строку как допустимую строку версии, содержащую номер версии, за которым следуют данные о предварительной версии и сборке.

int patch()

Возвращает значение элемента патча номера версии или ноль, если он отсутствует.

Optional<String> pre()

Возвращает необязательную информацию о предварительном релизе.

int security()

Устарело.

Начиная с Java SE 10, третий элемент номера версии не является уровнем безопасности, а счётчиком релиза обновления, увеличивающимся при каждом релизе обновления.

String toString()

Возвращает строковое представление этой версии.

int update()

Возвращает значение элемента обновления номера версии или ноль, если он отсутствует.

List<Integer> version()

Возвращает неизменяемый List целых чисел, представленных в номере версии.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Методы

parse

public static Runtime.Version parse(String s)

Парсит заданную строку как корректную строку версии строку версии, содержащую номер версии, за которым следуют информация о предварительной версии и сборке.

Параметры:
s - Строка для интерпретации как версии
Возвращает:
Версию заданной строки
Исключение:
IllegalArgumentException - Если заданная строка не может быть интерпретирована как корректная версия
NullPointerException - Если заданная строка является null
NumberFormatException - Если элемент номера версии или номера сборки не может быть представлен как Integer

feature

public int feature()

Возвращает значение элемента feature номера версии.

Возвращает:
Значение элемента feature
С тех пор как:
10

interim

public int interim()

Возвращает значение элемента interim номера версии или ноль, если он отсутствует.

Возвращает:
Значение элемента interim или ноль
С тех пор как:
10

update

public int update()

Возвращает значение элемента update номера версии или ноль, если он отсутствует.

Возвращает:
Значение элемента update или ноль
С тех пор как:
10

patch

public int patch()

Возвращает значение элемента patch номера версии или ноль, если он отсутствует.

Возвращает:
Значение элемента patch или ноль
С тех пор как:
10

major

@Deprecated(since="10")
public int major()
Устаревший.
Начиная с Java SE 10, первый элемент номера версии — это не номер основной версии, а счётчик версии функции, увеличивающийся при каждой версии, связанной со временем. Используйте метод feature() вместо этого метода. Для совместимости этот метод возвращает значение элемента feature.

Возвращает значение элемента major номера версии.

Возвращает:
Значение элемента feature

minor

@Deprecated(since="10")
public int minor()
Устаревший.
Начиная с Java SE 10, второй элемент номера версии — это не номер версии minor, а счётчик промежуточных версий, увеличивающийся при каждой промежуточной версии. Используйте метод interim() вместо этого метода. Для совместимости этот метод возвращает значение элемента interim или ноль, если он отсутствует.

Возвращает значение элемента minor номера версии или ноль, если он отсутствует.

Возвращает:
Значение элемента interim или ноль

security

@Deprecated(since="10")
public int security()
Устаревший.
Начиная с Java SE 10, третий элемент номера версии — это не уровень безопасности, а счётчик обновлений, увеличивающийся при каждом обновлении. Используйте метод update() вместо этого метода. Для совместимости этот метод возвращает значение элемента update или ноль, если он отсутствует.

Возвращает значение элемента security номера версии или ноль, если он отсутствует.

Возвращает:
Значение элемента update или ноль

version

public List<Integer> version()

Возвращает неизменяемый список List целых чисел, представленных в номере версии. Список List всегда содержит по меньшей мере один элемент, соответствующий номеру версии feature.

Возвращает:
Неизменяемый список целых чисел, представленных в номере версии

pre

public Optional<String> pre()

Возвращает необязательную информацию о предварительной версии pre-release.

Возвращает:
Необязательная информация о предварительной версии в виде строки

build

public Optional<Integer> build()

Возвращает номер сборки.

Возвращает:
Необязательный номер сборки.

optional

public Optional<String> optional()

Возвращает необязательную дополнительную идентифицирующую информацию о сборке.

Возвращает:
Дополнительная информация о сборке в виде строки

compareTo

public int compareTo(Runtime.Version obj)

Сравнивает эту версию с другой.

Каждый из компонентов в версии сравнивается в следующем порядке приоритета: номера версий, идентификаторы предварительной версии, номера сборки, необязательная информация о сборке.

Сравнение начинается с анализа последовательности номеров версий. Если одна последовательность короче другой, то отсутствующие элементы более короткой последовательности считаются меньше соответствующих элементов более длинной последовательности.

Версия с идентификатором предварительной версии всегда считается меньше версии без него. Идентификаторы предварительной версии сравниваются численно, если они состоят только из цифр, и лексикографически в противном случае. Численные идентификаторы считаются меньше, чем нечисловые идентификаторы.

Версия без номера сборки всегда меньше версии с номером сборки; в противном случае номера сборки сравниваются численно.

Необязательная информация о сборке сравнивается лексикографически. При этом сравнении версия с необязательной информацией о сборке считается больше, чем версия без неё.

Определяется:
compareTo в интерфейсе Comparable<Runtime.Version>
Параметры:
obj - Объект для сравнения
Возвращает:
Отрицательное целое число, ноль или положительное целое число, если эта Version меньше, равна или больше, чем данная Version
Исключение:
NullPointerException - Если заданный объект является null

compareToIgnoreOptional

public int compareToIgnoreOptional(Runtime.Version obj)

Сравнивает эту версию с другой, игнорируя необязательную информацию о сборке.

Две версии сравниваются, анализируя строку версии, как описано в compareTo(Version), за исключением того, что необязательная информация о сборке всегда игнорируется.

Этот метод обеспечивает порядок, совместимый с equalsIgnoreOptional().

Параметры:
obj - Объект для сравнения
Возвращает:
Отрицательное целое число, ноль или положительное целое число, если эта Version меньше, равна или больше, чем данная Version
Исключение:
NullPointerException - Если заданный объект является null

toString

public String toString()

Возвращает строковое представление этой версии.

Переопределяет:
toString в классе Object
Возвращает:
Строка версии

equals

public boolean equals(Object obj)

Определяет, равна ли эта Version другому объекту.

Две Version равны, если и только если они представляют ту же строку версии.

Переопределяет:
equals в классе Object
Параметры:
obj - Объект, с которым сравнивается эта Version
Возвращает:
true если и только если заданный объект является Version, идентичным этой Version
См. также:
Object.hashCode(), HashMap

equalsIgnoreOptional

public boolean equalsIgnoreOptional(Object obj)

Определяет, равна ли эта Version другому объекту, игнорируя необязательную информацию о сборке.

Две Version равны, если и только если они представляют ту же строку версии, игнорируя необязательную информацию о сборке.

Параметры:
obj - Объект, с которым сравнивается эта Version
Возвращает:
true если и только если заданный объект является Version, идентичной этой Version с игнорированием необязательной информации о сборке

hashCode

public int hashCode()

Возвращает хэш-код этой версии.

Переопределяет:
hashCode в классе Object
Возвращает:
Хэш-код этой версии
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

© 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/lang/Runtime.Version.html

Spec-Zone .ru
спецификации, руководства, описания, API