Module  java.base
软件包  java.lang

Class 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
    • 方法详细信息

      • major

        public int major​()
        返回 major版本号。
        结果
        主要版本号
      • minor

        public int minor​()
        如果没有设置,返回 minor版本号,否则返回零。
        结果
        次要版本号,如果未设置则为零
      • security

        public int security​()
        返回 security版本号,如果未设置则返回零。
        结果
        安全版本号,如果未设置则为零
      • optional

        public Optional<String> optional​()
        返回 optional附加识别构建信息。
        结果
        附加构建信息作为字符串
      • 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
      • toString

        public String toString​()
        返回此版本的字符串表示形式。
        重写:
        toStringObject
        结果
        版本字符串
      • equals

        public boolean equals​(Object obj)
        确定此Version是否等于另一个对象。

        当且仅当它们表示相同的版本字符串时,两个Version s是相等的。

        重写:
        equalsObject
        参数
        obj -对象对此 Version是待比较
        结果
        true如果,并且只有当给定的对象是一个 VersionVersion相同
        另请参见:
        Object.hashCode()HashMap
      • equalsIgnoreOptional

        public boolean equalsIgnoreOptional​(Object obj)
        确定此Version是否等于另一个忽略可选构建信息。

        当且仅当它们代表相同的版本字符串而忽略可选构建信息时,两个Version才是相同的。

        参数
        obj - 要比较此 Version的对象
        结果
        true如果,并且只有给定的对象是 VersionVersion相同,忽略可选的构建信息