convertir uuid en byte, cela fonctionne avec UUID.nameUUIDFromBytes (b)
Je suis la conversion de l'UUID d'octets à l'aide de ce code
public byte[] getIdAsByte(UUID uuid)
{
ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
bb.putLong(uuid.getMostSignificantBits());
bb.putLong(uuid.getLeastSignificantBits());
return bb.array();
}
Cependant, si j'essaie de recréer l'UUID à l'aide de cette fonction,
public UUID frombyte(byte[] b)
{
return UUID.nameUUIDFromBytes(b);
}
Il n'est pas le même UUID. La conversion d'un randomUUID ainsi des allers-retours à deux différents.
UUID u = UUID.randomUUID();
System.out.println(u.toString());
System.out.println(frombyte(getIdAsByte(u)).toString());
imprime:
1ae004cf-0f48-469f-8a94-01339afaec41
8b5d1a71-a4a0-3b46-bec3-13ab9ab12e8e
source d'informationauteur Alexandre H. Tremblay
Vous devez vous connecter pour publier un commentaire.
c'est parce que
nameUUIDFromBytes
construit un type spécifique de l'UUID (comme la javadoc unis).si vous voulez convertir un byte[] retour à un UUID, vous devez utiliser l'UUID constructeur. Envelopper un ByteBuffer autour du byte[], lire les 2 longs et de les transmettre à l'UUID constructeur.