- java.lang.Object
-
- java.lang.Runtime.Version
-
- All Implemented Interfaces:
-
Comparable<Runtime.Version>
- Enclosing class:
- Runtime
public static final class Runtime.Version extends Object implements Comparable<Runtime.Version>
用于实现Java SE平台的版本字符串的表示。 一个版本字符串由一个版本号组成,可以随后预发行和构建信息。Version numbers
版本号
$VNUM
是由句点字符(U + 002E)分隔的元素的非空序列。 一个元素是零,或者一个无符号整数,不带前导零。 版本号中的最后一个元素不能为零。 格式为:[1-9][0-9]*((\.0)*\.[1-9][0-9]*)*
序列可以是任意长度,但前三个元素被赋予具体含义,如下所示:
$MAJOR.$MINOR.$SECURITY
$MAJOR
---主要版本号,增加了主要版本,其中包含新版本的Java SE平台规范中指定的重要新功能, 例如 ,用于Java SE 8的JSR 337。特定功能可能会在主要版本中删除,给定提前通知至少一个主要版本,并且在合理的情况下可以进行不相容的更改。$MAJOR
版本号的JDK 8是8
;$MAJOR
版本的JDK 9是9
。 当增加$MAJOR
,将删除所有后续元素。$MINOR
---次要版本号,可能包含兼容的错误修复,相关平台规范的Maintenance Release规定的标准API的修订版本以及该规范范围之外的实现功能(例如新的JDK-特定API,附加服务提供商,新的垃圾收集器以及新的硬件体系结构的端口。$SECURITY
---对于包含重要修复程序的安全更新版本,其安全级别增加,包括为提高安全性所必需的修复。$SECURITY
时不复位$MINOR
递增。 对于给定的$MAJOR
值,较高的值为$SECURITY
,因此,总是表示更安全的发行,无论$MINOR
的值$MINOR
。
版本号的第四个和后来的元素可免费下载到这个代码库的消费者身上。 除了相应的安全版本中的安全修复之外,这样的消费者可以例如使用第四个元件来识别包含少量关键非安全性修补程序的补丁版本。
版本号不包括尾随零元素; 即
$SECURITY
省略其是否具有零值,和$MINOR
如果两个被省略$MINOR
和$SECURITY
具有零值。将版本号中的数字序列与数字,逐点方式中的另一个这样的序列进行比较; 例如 ,
9.9.1
小于9.10.3
。 如果一个序列比另一个序列短,则较短序列的丢失元素被认为小于较长序列的相应元素; 例如 ,9.1.2
小于9.1.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
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 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
hashCode()
返回此版本的哈希码。int
major()
返回 major版本号。int
minor()
如果没有设置,返回 minor版本号或零。Optional<String>
optional()
返回 optional附加识别构建信息。static Runtime.Version
parse(String s)
将给定的字符串解析为有效的 version string,其中包含一个 version number,其后是预发布和构建信息。Optional<String>
pre()
返回可选的 pre-release信息。int
security()
返回 security版本号,如果未设置则返回零。String
toString()
返回此版本的字符串表示形式。List<Integer>
version()
返回version number中包含的整数的不可修改的List
。
-
-
-
方法详细信息
-
parse
public static Runtime.Version parse(String s)
将给定的字符串解析为有效的 version string,其中包含一个 version number,之后是预发布和构建信息。- 参数
-
s
- 要解释为版本的字符串 - 结果
- 给定字符串的版本
- 异常
-
IllegalArgumentException
- 如果给定的字符串不能被解释为有效的版本 -
NullPointerException
- 如果给定的字符串是null
-
NumberFormatException
- 如果版本号或版本号的元素不能表示为Integer
-
major
public int major()
返回 major版本号。- 结果
- 主要版本号
-
minor
public int minor()
如果没有设置,返回 minor版本号,否则返回零。- 结果
- 次要版本号,如果未设置则为零
-
security
public int security()
返回 security版本号,如果未设置则返回零。- 结果
- 安全版本号,如果未设置则为零
-
version
public List<Integer> version()
返回version number中包含的整数数字的不可修改的List
。List
总是包含至少一个对应于major version number的元素。- 结果
- 包含在版本号中的不可修改的整数数字列表
-
pre
public Optional<String> pre()
返回可选的 pre-release信息。- 结果
- 可选的预发布信息作为字符串
-
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
s是相等的。- 重写:
-
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)
-
-