konvertieren uuid, der byte, das funktioniert bei der Verwendung von UUID.nameUUIDFromBytes(b)

Ich bin der Konvertierung der UUID, der byte mit diesem code

public byte[] getIdAsByte(UUID uuid)
{
    ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
    bb.putLong(uuid.getMostSignificantBits());
    bb.putLong(uuid.getLeastSignificantBits());
    return bb.array();
}

Allerdings, wenn ich versuche, die neu UUID verwenden Sie diese Funktion,

public UUID frombyte(byte[] b)
{
    return UUID.nameUUIDFromBytes(b);
}

Es ist nicht die gleiche UUID. Konvertieren einer randomUUID hin und her gibt es zwei verschiedene.

UUID u = UUID.randomUUID();
System.out.println(u.toString());
System.out.println(frombyte(getIdAsByte(u)).toString());

Drucke:

1ae004cf-0f48-469f-8a94-01339afaec41
8b5d1a71-a4a0-3b46-bec3-13ab9ab12e8e

InformationsquelleAutor der Frage Alexandre H. Tremblay | 2013-07-27

Schreibe einen Kommentar