Java 为什么UUID.fromString()不为此UUID抛出IllegalArgumentException?

Java 为什么UUID.fromString()不为此UUID抛出IllegalArgumentException?,java,uuid,Java,Uuid,我试图验证字符串是否为UUID。显然我不明白什么是有效的UUID。这是我认为无效的UUID-55bb6be3-078c-4a49-a4e6-1e05776ed7e81234 但当我将其传递给UUID.fromString(),而不是抛出IllegalArgumentException,它返回一个UUID,其值为55bb6be3-078c-4a49-bee7-776ed7e81234要抛出IllegalArgumentException,应该少于4个破折号或5个组件。以下是引发异常的代码部分:

我试图验证字符串是否为
UUID
。显然我不明白什么是有效的UUID。这是我认为无效的
UUID-55bb6be3-078c-4a49-a4e6-1e05776ed7e81234


但当我将其传递给UUID.fromString(),而不是抛出
IllegalArgumentException
,它返回一个UUID,其值为
55bb6be3-078c-4a49-bee7-776ed7e81234
要抛出
IllegalArgumentException
,应该少于4个破折号或5个组件。以下是引发异常的代码部分:

 String[] components = name.split("-");
 if (components.length != 5)
     throw new IllegalArgumentException("Invalid UUID string: "+name);

您的输入不是无效的,它有溢出的组件,因此返回的
UUID
与输入不同。

虽然它匹配
8-4-4-12
,但这是正确的UUIDI,我猜这就是问题所在-它是
8-4-4-16
。我明白了@用户26270,您可以验证此链接中解释的UUID感谢您的博客链接,这非常有用