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
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Brice Roncace
weil
nameUUIDFromBytes
Konstrukte, die eine bestimmte Art von UUID (als javadoc-Staaten).wenn Sie konvertieren möchten, ein byte[] zurück, um eine UUID, sollten Sie die UUID-Konstruktor. Wickeln Sie einen ByteBuffer rund um die byte[], Lesen Sie die 2 longs und übergeben die UUID Konstruktor.
InformationsquelleAutor der Antwort jtahlborn