- 所有已实现的接口:
Comparable<Runtime.Version>
- 封闭类:
Runtime
版本号
version number、$VNUM
是由句点字符 (U+002E) 分隔的非空元素序列。元素可以是零,也可以是不带前导零的无符号整数。版本号中的最后一个元素不能为零。当一个元素递增时,所有后续元素都会被删除。格式为:
[1-9][0-9]*((\.0)*\.[1-9][0-9]*)*
该序列可以是任意长度,但前四个元素被赋予了特定的含义,如下所示:
$FEATURE.$INTERIM.$UPDATE.$PATCH
$FEATURE
— 功能发布计数器,无论发布内容如何,都会针对每个功能发布递增。可以在功能发布中添加功能;如果提前通知至少一个功能版本,它们也可能被删除。在合理的情况下可以进行不兼容的更改。$INTERIM
— 临时版本计数器,对于包含兼容的错误修复和增强功能但没有不兼容的更改、没有功能删除以及没有对标准 API 进行更改的非功能版本递增。$UPDATE
— 更新发布计数器,随着兼容更新版本的增加而增加,这些更新版本修复了新功能中的安全问题、回归和错误。$PATCH
— 紧急补丁发布计数器,仅在需要生成紧急版本以解决关键问题时才增加。
版本号的第五个和后面的元素供平台实现者免费使用,以标识特定于实现者的补丁版本。
版本号永远不会有尾随零元素。如果一个元素及其后面的所有元素在逻辑上都具有零值,则所有元素都将被忽略。
版本号中的数字序列与另一个类似的数字序列进行逐点比较; e.g. , 10.0.4
小于 10.1.2
。如果一个序列比另一个短,则认为较短序列的缺失元素少于较长序列的相应元素; e.g. , 10.0.2
小于 10.0.2.1
。
版本字符串
version string , $VSTR
是版本号 $VNUM
,如上所述,可选地后跟预发布和构建信息,采用以下格式之一:
$VNUM(-$PRE)?\+$BUILD(-$OPT)? $VNUM-$PRE(-$OPT)? $VNUM(\+-$OPT)?
在哪里:
$PRE
,匹配([a-zA-Z0-9]+)
— 预发布标识符。通常ea
,用于在积极开发中可能不稳定的早期访问版本,或internal
,用于内部开发人员构建。$BUILD
,匹配(0|[1-9][0-9]*)
— 版本号,为每个提升的版本递增。当$VNUM
的任何部分递增时,$BUILD
将重置为1
。$OPT
,匹配([-a-zA-Z0-9.]+)
- 额外的构建信息,如果需要的话。在internal
构建的情况下,这通常包含构建的日期和时间。
版本字符串 10-ea
匹配 $VNUM = "10"
和 $PRE = "ea"
。版本字符串 10+-ea
与 $VNUM = "10"
和 $OPT = "ea"
匹配。
比较两个版本字符串时, $OPT
的值(如果存在)可能重要也可能不重要,具体取决于所选择的比较方法。比较方法 compareTo()
和 compareToIgnoreOptional()
应与相应的方法 equals()
和 equalsIgnoreOptional()
一致使用。
一个 short version string , $SVSTR
,通常在不太正式的上下文中很有用,是一个版本号,可以选择后跟一个预发布标识符:
$VNUM(-$PRE)?
这是一个value-based类;程序员应该将 equal 的实例视为可互换的,并且不应使用实例进行同步,否则可能会发生不可预测的行为。例如,在未来的版本中,同步可能会失败。
- 自从:
- 9
-
方法总结
修饰符和类型方法描述build()
返回 版本号 。int
compareTo
(Runtime.Version obj) 将此版本与另一个版本进行比较。int
将此版本与另一个忽略可选构建信息的版本进行比较。boolean
确定此Version
是否等于另一个对象。boolean
确定此Version
是否等于另一个忽略可选构建信息。int
feature()
返回版本号的 feature 元素的值。int
hashCode()
返回此版本的哈希码。int
interim()
返回版本号的 interim 元素的值,如果不存在则返回零。int
major()
已弃用。从 Java SE 10 开始,版本号的第一个元素不是主版本号,而是功能版本计数器,每个基于时间的版本都会递增。int
minor()
已弃用。从 Java SE 10 开始,版本号的第二个元素不是次要版本号,而是临时版本计数器,每个临时版本都会递增。optional()
返回 optional 附加标识构建信息。static Runtime.Version
int
patch()
返回版本号的 patch 元素的值,如果不存在则返回零。pre()
返回可选的 预发布 信息。int
security()
已弃用。从 Java SE 10 开始,版本号的第三个元素不是安全级别,而是更新发布计数器,每次更新发布都会递增。toString()
返回此版本的字符串表示形式。int
update()
返回版本号的 update 元素的值,如果不存在则返回零。version()
-
方法详情
-
parse
- 参数:
s
- 解释为版本的字符串- 返回:
- 给定字符串的版本
- 抛出:
IllegalArgumentException
- 如果给定的字符串不能解释为有效版本NullPointerException
- 如果给定的字符串是null
NumberFormatException
- 如果版本号或构建号的元素不能表示为Integer
-
feature
public int feature()返回版本号的 feature 元素的值。- 返回:
- 特征元素的值
- 自从:
- 10
-
interim
public int interim()返回版本号的 interim 元素的值,如果不存在则返回零。- 返回:
- 临时元素的值,或零
- 自从:
- 10
-
update
public int update()返回版本号的 update 元素的值,如果不存在则返回零。- 返回:
- 更新元素的值,或零
- 自从:
- 10
-
patch
public int patch()返回版本号的 patch 元素的值,如果不存在则返回零。- 返回:
- 补丁元素的值,或零
- 自从:
- 10
-
major
已弃用。返回版本号的主要元素的值。- 返回:
- 特征元素的值
-
minor
已弃用。返回版本号的次要元素的值,如果不存在则返回零。- 返回:
- 临时元素的值,或零
-
security
已弃用。返回版本号的安全元素的值,如果不存在则返回零。- 返回:
- 更新元素的值,或零
-
version
- 返回:
- 版本号中表示的不可修改的整数列表
-
pre
返回可选的 预发布 信息。- 返回:
- 字符串形式的可选预发布信息
-
build
返回 版本号 。- 返回:
- 可选的内部版本号。
-
optional
返回 optional 附加标识构建信息。- 返回:
- 作为字符串的附加构建信息
-
compareTo
将此版本与另一个版本进行比较。version 中的每个组件都按以下优先顺序进行比较:版本号、预发布标识符、构建号、可选构建信息。
比较从检查版本号的顺序开始。如果一个序列比另一个短,则认为较短序列的缺失元素少于较长序列的相应元素。
具有预发布标识符的版本始终被认为低于没有预发布标识符的版本。预发布标识符仅由数字组成时按数字进行比较,否则按字典顺序进行比较。数字标识符被认为小于非数字标识符。
没有内部版本号的版本总是小于有内部版本号的版本;否则内部版本号将进行数字比较。
可选的构建信息按字典顺序进行比较。在此比较期间,具有可选构建信息的版本被认为比没有构建信息的版本更高。
- 指定者:
compareTo
在接口Comparable<Runtime.Version>
中- 参数:
obj
- 要比较的对象- 返回:
-
如果此
Version
小于、等于或大于给定的Version
,则为负整数、零或正整数 - 抛出:
NullPointerException
- 如果给定对象是null
-
compareToIgnoreOptional
将此版本与另一个忽略可选构建信息的版本进行比较。通过检查版本字符串来比较两个版本,如
compareTo(Version)
中所述,但始终忽略可选的构建信息。此方法提供与
equalsIgnoreOptional()
一致的排序。- 参数:
obj
- 要比较的对象- 返回:
-
如果此
Version
小于、等于或大于给定的Version
,则为负整数、零或正整数 - 抛出:
NullPointerException
- 如果给定对象是null
-
toString
返回此版本的字符串表示形式。 -
equals
确定此Version
是否等于另一个对象。当且仅当它们表示相同的版本字符串时,两个
Version
才相等。 -
equalsIgnoreOptional
确定此Version
是否等于另一个忽略可选构建信息。两个
Version
是相等的当且仅当它们表示相同的版本字符串而忽略可选的构建信息。- 参数:
obj
- 与此Version
进行比较的对象- 返回:
true
当且仅当给定对象是一个Version
与此Version
相同,忽略可选构建信息
-
hashCode
public int hashCode()返回此版本的哈希码。
-