- java.lang.Object
-
- java.lang.Runtime.Version
-
- 实现的所有接口
-
Comparable<Runtime.Version>
- Enclosing class:
- Runtime
public static final class Runtime.Versionextends Objectimplements Comparable<Runtime.Version>
用于Java SE平台实现的版本字符串的表示。 版本字符串由版本号组成,可选地后跟预发布和构建信息。Version numbers
版本号
$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
。Version strings
版本字符串
$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)?
这是一个value-based课程; 在
Version
实例上使用身份敏感操作(包括引用相等(==
),标识哈希码或同步)可能会产生不可预测的结果,应该避免使用。- 从以下版本开始:
- 9
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 Optional<Integer>
build()
返回 build number 。int
compareTo(Runtime.Version obj)
将此版本与另一版本进行比较。int
compareToIgnoreOptional(Runtime.Version obj)
将此版本与另一个版本进行比较,忽略可选的构建信息。boolean
equals(Object obj)
确定此Version
是否等于另一个对象。boolean
equalsIgnoreOptional(Object obj)
确定此Version
是否等于另一个忽略可选的构建信息。int
feature()
返回版本号的 feature元素的值。int
hashCode()
返回此版本的哈希码。int
interim()
返回版本号的 interim元素的值,如果不存在,则返回零。int
major()
已过时。从Java SE 10开始,版本号的第一个元素不是主要版本号,而是特征释放计数器,每个基于时间的版本都会增加。int
minor()
已过时。从Java SE 10开始,版本号的第二个元素不是次要版本号,而是临时释放计数器,对于每个临时版本都会增加。Optional<String>
optional()
返回 optional其他标识构建信息。static Runtime.Version
parse(String s)
将给定字符串解析为包含 version number的有效 version string ,然后是预发布和构建信息。int
patch()
返回版本号的 patch元素的值,如果不存在,则返回零。Optional<String>
pre()
返回可选的 pre-release信息。int
security()
已过时。从Java SE 10开始,版本号的第三个元素不是安全级别,而是更新释放计数器,每个更新版本都会增加。String
toString()
返回此版本的字符串表示形式。int
update()
返回版本号的 update元素的值,如果不存在,则返回零。List<Integer>
version()
返回version number中表示的整数的不可修改的List
。
-
-
-
方法详细信息
-
parse
public static Runtime.Version parse(String s)
将给定字符串解析为包含 version number的有效 version string ,然后是预发布和构建信息。- 参数
-
s
- 要解释为版本的字符串 - 结果
- 给定字符串的版本
- 异常
-
IllegalArgumentException
- 如果给定的字符串不能解释为有效版本 -
NullPointerException
- 如果给定的字符串是null
-
NumberFormatException
- 如果版本号或内部版本号的元素不能表示为Integer
-
feature
public int feature()
返回版本号的 feature元素的值。- 结果
- 要素元素的值
- 从以下版本开始:
- 10
-
interim
public int interim()
返回版本号的 interim元素的值,如果不存在,则返回零。- 结果
- 临时元素的值,或者为零
- 从以下版本开始:
- 10
-
update
public int update()
返回版本号的 update元素的值,如果不存在,则返回零。- 结果
- update元素的值,或者为零
- 从以下版本开始:
- 10
-
patch
public int patch()
返回版本号的 patch元素的值,如果不存在,则返回零。- 结果
- 补丁元素的值,或者为零
- 从以下版本开始:
- 10
-
major
@Deprecated(since="10")public int major()
Deprecated.返回版本号的主要元素的值。- 结果
- 要素元素的值
-
minor
@Deprecated(since="10")public int 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(since="10")public int 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.返回版本号的安全元素的值,如果不存在,则返回零。- 结果
- update元素的值,或者为零
-
version
public List<Integer> version()
返回version number中表示的整数的不可修改的List
。List
始终包含至少一个对应于feature version number的元素。- 结果
- 版本号中表示的整数的不可修改列表
-
pre
public Optional<String> pre()
返回可选的 pre-release信息。- 结果
- 可选的预发布信息为String
-
build
public Optional<Integer> build()
返回 build number 。- 结果
- 可选的内部版本号。
-
compareTo
public int compareTo(Runtime.Version obj)
将此版本与另一版本进行比较。version中的每个组件按以下优先顺序进行比较:版本号,预发布标识符,内部版本号,可选构建信息。
比较从检查版本号的顺序开始。 如果一个序列比另一个序列短,那么较短序列的缺失元素被认为小于较长序列的相应元素。
具有预发布标识符的版本始终被认为小于没有预发布标识符的版本。 预发布标识符在仅由数字组成时以数字方式进行比较,否则按字典顺序进行比较。 数字标识符被认为小于非数字标识符。
没有内部版本号的版本总是小于具有内部版本号的版本; 否则建立数字在数字上进行比较。
可选的构建信息按字典顺序进行比较。 在此比较期间,具有可选构建信息的版本被认为大于没有版本的版本。
- Specified by:
-
compareTo
,界面Comparable<Runtime.Version>
- 参数
-
obj
- 要比较的对象 - 结果
- 如果此
Version
小于,等于或大于给定的Version
负整数,零或正整数 - 异常
-
NullPointerException
- 如果给定对象是null
-
compareToIgnoreOptional
public int compareToIgnoreOptional(Runtime.Version obj)
将此版本与另一个版本进行比较,忽略可选的构建信息。通过检查版本字符串来比较两个版本,如
compareTo(Version)
中所述,但可选的构建信息始终被忽略。此方法提供与
equalsIgnoreOptional()
一致的equalsIgnoreOptional()
。- 参数
-
obj
- 要比较的对象 - 结果
- 如果此
Version
小于,等于或大于给定的Version
负整数,零或正整数 - 异常
-
NullPointerException
- 如果给定对象是null
-
equals
public boolean equals(Object obj)
确定此Version
是否等于另一个对象。当且仅当它们代表相同的版本字符串时,两个
Version
是相等的。- 重写:
-
equals
在类Object
- 参数
-
obj
- 将Version
进行比较的对象 - 结果
-
true
if且仅当给定对象是Version
且与此Version
- 另请参见:
-
Object.hashCode()
,HashMap
-
equalsIgnoreOptional
public boolean equalsIgnoreOptional(Object obj)
确定此Version
是否等于另一个忽略可选的构建信息。当且仅当它们代表相同的版本字符串而忽略可选的构建信息时,两个
Version
是相等的。- 参数
-
obj
-Version
进行比较的对象 - 结果
-
true
if且仅当给定对象是Version
与此Version
相同而忽略可选构建信息时
-
hashCode
public int hashCode()
返回此版本的哈希码。- 重写:
-
hashCode
在类Object
- 结果
- 此版本的哈希码
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-