【发布时间】:2021-10-20 00:59:18
【问题描述】:
我有一个对象数组。这些对象提供toByteArray() 方法。
如果我打电话给foo.toByteArray(),我会得到这个对象的字节表示。
我正在努力将这个对象数组转换为字节数组。
我的第一个方法是:
Arrays.stream(fooArray).map((fooEntry) -> fooEntry.toByteArray()).toArray();
但是,这确实返回了一个对象数组而不是 byte[]。 做我想做的最简单的方法是什么?
【问题讨论】:
-
从概念上讲,您需要使用
flatMap而不是map。但是,它并不像数组那么简单。 -
您对对象的
toByteArray()实现是什么? -
对象基本上代表一个字节值和一个短值。 toByteArray 执行以下操作:
return new byte[] {validFlag, (byte) ((value>> Byte.SIZE) & BinaryDataUtil.BYTE_MASK), (byte) (value & BinaryDataUtil.BYTE_MASK) };
标签: java arrays stream byte primitive