Класс Runtime.Version
- Все реализованные интерфейсы:
Comparable<Runtime.Version>
- Охватывающий класс:
Runtime
public static final class Runtime.Version extends Object implements Comparable<Runtime.Version>
Номера версий
Номер версии, $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)?
Это класс на основе значения; программистам следует считать экземпляры, которые равны, взаимозаменяемыми и не использовать экземпляры для синхронизации, иначе возможно непредсказуемое поведение. Например, в будущем выпуске синхронизация может завершиться неудачей.
- Начиная с версии:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Optional |
build() |
Возвращает номер сборки. |
int |
compareTo |
Сравнивает эту версию с другой. |
int |
compareToIgnoreOptional |
Сравнивает эту версию с другой, не учитывая дополнительные сведения о сборке. |
boolean |
equals |
Определяет, равен ли этот Version другому объекту. |
boolean |
equalsIgnoreOptional |
Определяет, равен ли этот Version другому, не учитывая дополнительные сведения о сборке. |
int |
feature() |
Возвращает значение элемента функционального выпуска номера версии. |
int |
hashCode() |
Возвращает хеш-код этой версии. |
int |
interim() |
Возвращает значение элемента промежуточного выпуска номера версии или ноль, если он отсутствует. |
int |
major() |
Устарело. Начиная с Java SE 10 первый элемент номера версии обозначает не номер основного выпуска, а счётчик выпусков функциональных возможностей, увеличиваемый при каждом выпуске по расписанию. |
int |
minor() |
Устарело. Начиная с Java SE 10 второй элемент номера версии обозначает не номер промежуточного выпуска, а счётчик промежуточных выпусков, увеличиваемый при каждом промежуточном выпуске. |
Optional |
optional() |
Возвращает дополнительные сведения для идентификации сборки. |
static Runtime.Version |
parse |
Разбирает заданную строку как допустимую строку версии, содержащую номер версии, за которым следуют сведения о предварительном выпуске и сборке. |
int |
patch() |
Возвращает значение элемента исправления номера версии или ноль, если он отсутствует. |
Optional |
pre() |
Возвращает дополнительные сведения о предварительном выпуске. |
int |
security() |
Устарело. Начиная с Java SE 10 третий элемент номера версии обозначает не уровень безопасности, а счётчик выпусков обновлений, увеличиваемый при каждом выпуске обновления. |
String |
toString() |
Возвращает строковое представление этой версии. |
int |
update() |
Возвращает значение элемента обновления номера версии или ноль, если он отсутствует. |
List |
version() |
Возвращает неизменяемый List целых чисел, представленных в номере версии. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация признана устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание методов
parse
public static Runtime.Version parse(String s)
- Параметры:
-
s— строка, интерпретируемая как версия - Возвращает:
- Версию, заданную строкой
- Исключения:
-
IllegalArgumentException— если заданную строку невозможно интерпретировать как допустимую версию -
NullPointerException— если заданная строка имеет значениеnull -
NumberFormatException— если элемент номера версии или номер сборки невозможно представить какInteger
feature
public int feature()
- Возвращает:
- Значение элемента функционального выпуска
- Начиная с версии:
- 10
interim
public int interim()
- Возвращает:
- Значение элемента промежуточного выпуска или ноль
- Начиная с версии:
- 10
update
public int update()
- Возвращает:
- Значение элемента обновления или ноль
- Начиная с версии:
- 10
patch
public int patch()
- Возвращает:
- Значение элемента исправления или ноль
- Начиная с версии:
- 10
major
@Deprecated(since="10") public int major()
feature(). Для обеспечения совместимости этот метод возвращает значение элемента функционального выпуска.- Возвращает:
- Значение элемента функционального выпуска
minor
@Deprecated(since="10") public int minor()
interim(). Для обеспечения совместимости этот метод возвращает значение элемента промежуточного выпуска или ноль, если он отсутствует.- Возвращает:
- Значение элемента промежуточного выпуска или ноль
security
@Deprecated(since="10") public int security()
update(). Для обеспечения совместимости этот метод возвращает значение элемента обновления или ноль, если он отсутствует.- Возвращает:
- Значение элемента обновления или ноль
version
public List<Integer> version()
List целых чисел, представленных в номере версии. List всегда содержит как минимум один элемент, соответствующий номеру версии функционального выпуска.- Возвращает:
- Неизменяемый список целых чисел, представленных в номере версии
pre
public Optional<String> pre()
- Возвращает:
- Дополнительные сведения о предварительном выпуске в виде String
build
optional
public Optional<String> optional()
- Возвращает:
- Дополнительные сведения о сборке в виде String
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
equals
public boolean equals(Object obj)
Version другому объекту. Два Versions равны тогда и только тогда, когда они представляют одну и ту же строку версии.
equalsIgnoreOptional
public boolean equalsIgnoreOptional(Object obj)
Version другому, не учитывая дополнительные сведения о сборке. Два Versions равны тогда и только тогда, когда они представляют одну и ту же строку версии без учёта дополнительных сведений о сборке.
- Параметры:
-
obj— объект, с которым сравнивается этотVersion - Возвращает:
-
trueтогда и только тогда, когда заданный объект являетсяVersion, идентичным этомуVersionбез учёта дополнительных сведений о сборке
hashCode
© 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.