Класс Runtime.Version
- java.lang.Object
-
- java.lang.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) | Определяет, равна ли эта |
boolean | equalsIgnoreOptional(Object obj) | Определяет, равна ли эта |
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() | Возвращает неизменяемый |
Методы, объявленные в классе 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()
Возвращает значение элемента major номера версии.
- Возвращает:
- Значение элемента feature
minor
@Deprecated(since="10") public int minor()
interim() вместо этого метода. Для совместимости этот метод возвращает значение элемента interim или ноль, если он отсутствует.Возвращает значение элемента minor номера версии или ноль, если он отсутствует.
- Возвращает:
- Значение элемента interim или ноль
security
@Deprecated(since="10") public int security()
Возвращает значение элемента 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()
Возвращает строковое представление этой версии.
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