将 uuid 转换为 byte,这在使用 UUID.nameUUIDFromBytes(b) 时有效
我正在使用此代码将UUID转换为字节
public byte[] getIdAsByte(UUID uuid)
{
ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
bb.putLong(uuid.getMostSignificantBits());
bb.putLong(uuid.getLeastSignificantBits());
return bb.array();
}
但是,如果我尝试使用此功能重新创建UUID,
public UUID frombyte(byte[] b)
{
return UUID.nameUUIDFromBytes(b);
}
它不是相同的 UUID。来回转换 randomUUID 会返回两个不同的它。
UUID u = UUID.randomUUID();
System.out.println(u.toString());
System.out.println(frombyte(getIdAsByte(u)).toString());
指纹:
1ae004cf-0f48-469f-8a94-01339afaec41
8b5d1a71-a4a0-3b46-bec3-13ab9ab12e8e