模块  java.base
软件包  java.lang

Class Runtime.Version

  • 实现的所有接口
    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]*)*
     

    序列可以是任意长度,但前四个元素被赋予特定含义,如下所示:

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

      • 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.
        As of Java SE 10, the first element of a version number is not the major-release number but the feature-release counter, incremented for every time-based release. Use the feature() method in preference to this method. For compatibility, this method returns the value of the feature element.
        返回版本号的主要元素的值。
        结果
        要素元素的值
      • 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 the interim() 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 the update() method in preference to this method. For compatibility, this method returns the value of the update element, or zero if it is absent.
        返回版本号的安全元素的值,如果不存在,则返回零。
        结果
        update元素的值,或者为零
      • optional

        public Optional<String> optional()
        返回 optional附加标识构建信息。
        结果
        附加构建信息作为String
      • 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()
        返回此版本的字符串表示形式。
        重写:
        toString在类 Object
        结果
        版本字符串
      • 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相同而忽略可选构建信息时