How to generate a UUID
Short answer
A UUID is a 128-bit identifier that practically never repeats. UUID.randomUUID() creates a random one:
void main() {
UUID id = UUID.randomUUID();
IO.println(id);
IO.println(id.version());
}Output:
b5ab3a62-a3be-430f-9ccb-7ffef0718aff
4The value is new every time; version 4 means "random".
From a string
UUID.fromString() parses the string form:
void main() {
UUID id = UUID.fromString("3f2a6c1e-8b4d-4c7a-9e21-5d0f7b3a9c44");
IO.println(id.toString().toUpperCase());
}Output:
3F2A6C1E-8B4D-4C7A-9E21-5D0F7B3A9C44The same UUID for the same name
nameUUIDFromBytes() always gives the same UUID for the same bytes:
void main() {
byte[] name = "anna@site.com".getBytes(StandardCharsets.UTF_8);
IO.println(UUID.nameUUIDFromBytes(name));
IO.println(UUID.nameUUIDFromBytes(name).equals(UUID.nameUUIDFromBytes(name)));
}Output:
7757f307-9840-333a-9f7c-2a03148241bc
trueCommon mistake
Not validating the string before fromString(). An invalid string throws:
void main() {
UUID.fromString("not-a-uuid");
}Output:
Exception in thread "main" java.lang.IllegalArgumentException: Invalid UUID string: not-a-uuidFunctions used in this recipe
- Random — A random number generator: integers in a range, decimals, booleans.