I'm trying to generate a UUID with all zeros:

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

The error is

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

What am I doing wrong?

I want to create either "MinValue" or "Invalid" UUID.

有帮助吗?

解决方案

try this

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

it prints

00000000-0000-0000-0000-000000000000

this is the right format to use in UUID.fromString

其他提示

Isn't it supposed to be 8-4-4-4-12? like this: 00000000-0000-0000-0000-000000000000

From https://en.wikipedia.org/wiki/Universally_unique_identifier#Nil_UUID:

The "nil" UUID, a special case, is the UUID, 00000000-0000-0000-0000-000000000000; that is, all bits set to zero.

The dashes should follow the normal 8-4-4-4-12 format because that's what the standards say to use and many (most?) tools enforce that on input.

Some tools may accept other formats, e.g. 32 hex digits with no dashes, because they just remove the dashes (if present) before validation anyway, but the particular tool you're using is a bit stricter/smarter, which shows that using non-standard formats is a bad habit that will end up biting you.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top