- 所有已实现的接口:
-
Comparable<Runtime.Version>
- 封装类:
-
Runtime
版本号
版本号,$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]*)
— 构建号,每次推广构建都会递增。当$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()
。
一个短版本字符串,$SVSTR
,通常在较不正式的上下文中有用,是一个版本号,可选择地后跟预发布标识符:
$VNUM(-$PRE)?
这是一个基于值的类;程序员应该将相等的实例视为可互换的,并且不应将实例用于同步,否则可能会发生不可预测的行为。例如,在将来的版本中,同步可能会失败。
- 自Java 9起:
- 9
-
Method Summary
Modifier and TypeMethodDescriptionbuild()
返回构建号。int
compareTo
(Runtime.Version obj) 将此版本与另一个版本进行比较。int
将此版本与另一个版本进行比较,忽略可选的构建信息。boolean
确定此Version
是否等于另一个对象。boolean
确定此Version
是否等于另一个对象,忽略可选的构建信息。int
feature()
返回版本号的特性元素的值。int
hashCode()
返回此版本的哈希码。int
interim()
返回版本号的临时元素的值,如果不存在则返回零。int
major()
已弃用。自Java SE 10起,版本号的第一个元素不是主要发布号,而是特性发布计数器,每次基于时间的发布都会递增。int
minor()
已弃用。自Java SE 10起,版本号的第二个元素不是次要发布号,而是临时发布计数器,每次临时发布都会递增。optional()
返回可选的额外标识构建信息。static Runtime.Version
int
patch()
返回版本号的补丁元素的值,如果不存在则返回零。pre()
返回可选的预发布信息。int
security()
已弃用。自Java SE 10起,版本号的第三个元素不是安全级别,而是更新发布计数器,每次更新发布都会递增。toString()
返回此版本的字符串表示形式。int
update()
返回版本号的更新元素的值,如果不存在则返回零。version()
-
Method Details
-
parse
- 参数:
-
s
- 要解释为版本的字符串 - 返回:
- 给定字符串的版本
- 抛出:
-
IllegalArgumentException
- 如果给定的字符串无法解释为有效版本 -
NullPointerException
- 如果给定的字符串为null
-
NumberFormatException
- 如果版本号或构建号的任何元素无法表示为Integer
-
feature
public int feature()返回版本号的特性元素的值。- 返回:
- 特性元素的值
- 自Java 10起:
- 10
-
interim
public int interim()返回版本号的临时元素的值,如果不存在则返回零。- 返回:
- 临时元素的值,或零
- 自Java 10起:
- 10
-
update
public int update()返回版本号的更新元素的值,如果不存在则返回零。- 返回:
- 更新元素的值,或零
- 自Java 10起:
- 10
-
patch
public int patch()返回版本号的补丁元素的值,如果不存在则返回零。- 返回:
- 补丁元素的值,或零
- 自Java 10起:
- 10
-
major
Deprecated.返回版本号的主要元素的值。- 返回:
- 特性元素的值
-
minor
Deprecated.As of Java SE 10, the second element of a version number is not the minor-release number but the interim-release counter, incremented for every interim release. Use theinterim()
method in preference to this method. For compatibility, this method returns the value of the interim element, or zero if it is absent.返回版本号的次要元素的值,如果不存在则返回零。- 返回:
- 临时元素的值,或零
-
security
Deprecated.As of Java SE 10, the third element of a version number is not the security level but the update-release counter, incremented for every update release. Use theupdate()
method in preference to this method. For compatibility, this method returns the value of the update element, or zero if it is absent.返回版本号的安全元素的值,如果不存在则返回零。- 返回:
- 更新元素的值,或零
-
version
- 返回:
- 表示版本号中的整数的不可修改列表
-
pre
返回可选的预发布信息。- 返回:
- 可选的预发布信息作为字符串
-
build
返回构建号。- 返回:
- 可选的构建编号。
-
optional
返回可选的额外标识构建信息。- 返回:
- 作为字符串的额外构建信息
-
compareTo
将此版本与另一个版本进行比较。按以下优先顺序比较版本中的每个组件:版本号码、预发布标识符、构建号码、可选的构建信息。
比较从检查版本号码序列开始。如果一个序列比另一个短,则较短序列的缺失元素被视为小于较长序列的相应元素。
具有预发布标识符的版本始终被视为小于没有预发布标识符的版本。当预发布标识符仅由数字组成时,它们按数字进行比较,否则按字典顺序进行比较。数字标识符被视为小于非数字标识符。
没有构建号的版本始终小于具有构建号的版本;否则构建号按数字进行比较。
可选的构建信息按字典顺序进行比较。在此比较期间,具有可选构建信息的版本被视为大于没有可选构建信息的版本。
- 指定者:
-
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
与之比较的对象 - 返回:
-
如果给定对象是与此
Version
相同且相等的Version
,忽略可选的构建信息,则为true
-
hashCode
public int hashCode()返回此版本的哈希码。
-