Module java.base
Package java.lang.module

Class ModuleDescriptor.Version

java.lang.Object
java.lang.module.ModuleDescriptor.Version
所有已实现的接口:
Comparable<ModuleDescriptor.Version>
封装类:
ModuleDescriptor

public static final class ModuleDescriptor.Version extends Object implements Comparable<ModuleDescriptor.Version>
模块的版本字符串。

版本字符串有三个组成部分:版本号本身,可选的预发布版本和可选的构建版本。每个组件都是一个令牌序列;每个令牌都是非负整数或字符串。令牌由标点字符'.''-''+'分隔,或者由从数字序列到既不是数字也不是标点字符的字符序列的转换,反之亦然。连续重复的标点字符被视为单个标点字符。

  • 版本号是由'.'字符分隔的令牌序列,以第一个'-''+'字符终止。
  • 预发布版本是由'.''-'字符分隔的令牌序列,以第一个'+'字符终止。
  • 构建版本是由'.''-''+'字符分隔的令牌序列。

比较两个版本字符串时,将逐点比较它们对应组件的元素。如果一个组件比另一个组件长,但除此之外相等,则第一个组件被视为两者中较大的;否则,如果两个对应元素是整数,则将它们作为整数进行比较;否则,至少有一个元素是字符串,因此如果另一个元素是整数,则将其转换为字符串并按字典顺序进行比较。值为零的尾随整数元素将被忽略。

给定两个版本字符串,如果它们的版本号不同,则比较它们的结果是比较它们的版本号;否则,如果其中一个具有预发布版本但另一个没有,则第一个被认为在第二个之前,否则比较它们的结果是比较它们的预发布版本;否则,比较它们的结果是比较它们的构建版本。

自 JDK 9 起:
9
参见:
  • Method Details

    • parse

      public static ModuleDescriptor.Version parse(String v)
      将给定字符串解析为版本字符串。
      参数:
      v - 要解析的字符串
      返回:
      结果Version
      抛出:
      IllegalArgumentException - 如果vnull、空字符串或无法解析为版本字符串
    • compareTo

      public int compareTo(ModuleDescriptor.Version that)
      将此模块版本与另一个模块版本进行比较。模块版本按类描述中描述的方式进行比较。
      指定者:
      compareTo 在接口 Comparable<ModuleDescriptor.Version>
      参数:
      that - 要比较的模块版本
      返回:
      如果此模块版本小于、等于或大于给定模块版本,则为负整数、零或正整数
    • equals

      public boolean equals(Object ob)
      测试此模块版本与给定对象是否相等。

      如果给定对象不是Version,则此方法返回false。如果两个模块版本的对应组件相等,则它们相等。

      此方法满足Object.equals方法的一般约定。

      覆盖:
      equals 在类 Object
      参数:
      ob - 要比较的对象
      返回:
      如果给定对象是等于此模块引用的模块引用,则为true
      参见:
    • hashCode

      public int hashCode()
      为此模块版本计算哈希码。

      哈希码基于版本的组件,并满足Object.hashCode方法的一般约定。

      覆盖:
      hashCode 在类 Object
      返回:
      此模块版本的哈希码值
      参见:
    • toString

      public String toString()
      返回解析此版本的字符串。
      覆盖:
      toString 在类 Object
      返回:
      返回解析此版本的字符串。