版本字符串有三个组件:版本号本身,可选的预发行版本和可选的构建版本。 每个组件都是一系列令牌; 每个标记都是非负整数或字符串。 令牌由标点符号字符分隔'.'
, '-'
,或'+'
,或者通过转换从数字序列到既不是数字也不标点符号,或反之亦然的字符序列。
- 版本号是由
'.'
字符分隔的标记序列,由第一个'-'
或'+'
字符终止。 - 预发行版本是由
'.'
或'-'
字符分隔的标记序列,由第一个'+'
字符终止。 - 生成版本是由分隔的标记的序列
'.'
,'-'
,或'+'
字符。
当比较两个版本字符串时,它们相应组件的元素以逐点方式进行比较。 如果一个组件比另一个组件长,但在其他方面等于它,那么第一个组件被认为是两个组件中的较大者; 否则,如果两个相应的元素是整数,则将它们进行比较; 否则,至少有一个元素是一个字符串,所以如果它是一个整数,则另一个元素被转换成字符串,并且这两个元素按字典顺序进行比较。 将忽略值为零的尾随整数元素。
给定两个版本字符串,如果它们的版本号不同,则比较它们的结果是比较它们的版本号的结果; 否则,如果其中一个版本具有预发布版本但另一个版本没有,那么第一个版本被认为是在第二个版本之前,否则比较它们的结果是比较它们的预发行版本的结果; 否则,比较它们的结果是比较它们的构建版本的结果。
将此模块版本与另一个模块版本进行比较。 测试此模块版本是否与给定对象相等。 计算此模块版本的哈希码。 将给定字符串解析为版本字符串。 返回解析此版本的字符串。 将给定字符串解析为版本字符串。 将此模块版本与另一个模块版本进行比较。 模块版本按类描述中的描述进行比较。 测试此模块版本是否与给定对象相等。 如果给定对象不是Version
则此方法返回false
。 如果相应的组件相等,则两个模块版本相同。
该方法满足Object.equals
方法的一般合同。
哈希码基于版本的组件并满足Object.hashCode
方法的常规协定。
变量和类型 | 方法 | 描述 |
---|---|---|
int |
compareTo(ModuleDescriptor.Version that) |
将此模块版本与另一个模块版本进行比较。
|
boolean |
equals(Object ob) |
测试此模块版本是否与给定对象相等。
|
int |
hashCode() |
计算此模块版本的哈希码。
|
static ModuleDescriptor.Version |
parse(String v) |
将给定字符串解析为版本字符串。
|
String |
toString() |
返回解析此版本的字符串。
|