用零创建UUID

时间:2013-12-30 13:09:36

标签: java scala uuid

我正在尝试使用全零生成UUID:

java.util.UUID fromString "00000000-00000000-00000000-00000000"

错误是

 java.lang.IllegalArgumentException: Invalid UUID string: 00000000-00000000-00000000-00000000
    at java.util.UUID.fromString(UUID.java:194)

我做错了什么?

我想创建“MinValue”或“Invalid”UUID。

3 个答案:

答案 0 :(得分:39)

试试这个

System.out.println(new UUID(0,0));

打印

00000000-0000-0000-0000-000000000000

这是UUID.fromString

中使用的正确格式

答案 1 :(得分:11)

不应该是8-4-4-4-12吗?像这样: 00000000-0000-0000-0000-000000000000

答案 2 :(得分:1)

来自https://en.wikipedia.org/wiki/Universally_unique_identifier#Nil_UUID

  

特殊情况下,“无” UUID是UUID,即00000000-0000-0000-0000-000000000000;也就是说,所有位都设置为零。

破折号应遵循正常的8-4-4-4-12格式,因为这是标准所说的,并且许多(大多数?)工具会在输入时强制使用该格式。

某些工具可能接受其他格式,例如32个不带破折号的十六进制数字,因为它们只是在验证之前就删除了破折号(如果存在),但是您使用的特定工具更加严格/更加智能,这表明使用非标准格式是一种不良习惯,最终咬你。