我正在使用此代码将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
public class UuidUtils {
public static UUID asUuid(byte[] bytes) {
ByteBuffer bb = ByteBuffer.wrap(bytes);
long firstLong = bb.getLong();
long secondLong = bb.getLong();
return new UUID(firstLong, secondLong);
}
public static byte[] asBytes(UUID uuid) {
ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
bb.putLong(uuid.getMostSignificantBits());
bb.putLong(uuid.getLeastSignificantBits());
return bb.array();
}
}
@Test
public void verifyUUIDBytesCanBeReconstructedBackToOriginalUUID() {
UUID u = UUID.randomUUID();
byte[] uBytes = UuidUtils.asBytes(u);
UUID u2 = UuidUtils.asUuid(uBytes);
Assert.assertEquals(u, u2);
}
@Test
public void verifyNameUUIDFromBytesMethodDoesNotRecreateOriginalUUID() {
UUID u = UUID.randomUUID();
byte[] uBytes = UuidUtils.asBytes(u);
UUID u2 = UUID.nameUUIDFromBytes(uBytes);
Assert.assertNotEquals(u, u2);
}
我的应用程序基于Spring reactive,mysql。当我试图从mysql数据库中获取数据时,我收到一个错误“org.springframework.core.convert.ConverterNotFoundException:找不到能够从类型[java.nio.HeapByteBuffer]转换为类型[java.util.UUID]的转换器” 我尝试将转换器添加到实现WebFLuxCon
我试图通过API发送数据,但得到了类型错误:无法将字节转换为str。我理解这意味着我需要将部分代码转换为字节,但我不确定如何执行。我尝试在前面添加b或使用字节(“数据”),但可能将它们放在了错误的区域。 这是问题行: 我不确定什么和如何转换为字节。
问题内容: 问题是如何将ByteArray转换为GUID。 以前,我将GUID转换为字节数组,经过一些事务后,我需要将GUID从字节数组中退回。我怎么做。虽然无关紧要,但是从Guid到byte []的转换如下 但是我该如何将其转换回来? 我尝试了这种方法,但是没有返回相同的值 任何帮助将不胜感激。 问题答案: 该方法将名称转换为UUID。在内部,它使用哈希和一些黑魔法将任何名称(即字符串)转换为有
我想将字节转换为JsonObject。我试着这样: 但我遇到编译器错误: 我怎么能这样呢?
问题内容: 在Java中,是否有一种简单而优雅的方法将无符号字节值转换为有符号字节值?例如,如果我所拥有的只是int值240(二进制(24位+ 11110000)= 32bits),如何获得该int的带符号值? 问题答案: 除了,Java没有其他无符号值。考虑以下代码段: 结果将为-1,因为最低的8位已复制到byte变量中。
问题内容: 我想在GO中将字符串数组转换为字节数组,以便可以将其写到磁盘上。将字符串数组()解码为字节数组()的最佳解决方案是什么? 我正在考虑对字符串数组进行两次迭代,第一个迭代以获得字节数组所需的实际大小,然后第二个迭代写入每个元素的长度和实际字符串()。 解决方案必须能够以其他方式进行转换;从一个到一个。 问题答案: 让我们忽略一个事实,那就是走一秒钟。您需要做的第一件事是将序列化格式编组为