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感谢您的博客链接,这非常有用