byte[] toPrimitives(Byte[] oBytes)
{
byte[] bytes = new byte[oBytes.length];
for(int i = 0; i < oBytes.length; i++){
bytes[i] = oBytes[i];
}
return bytes;
}
反向:
//byte[] to Byte[]
Byte[] toObjects(byte[] bytesPrim) {
Byte[] bytes = new Byte[bytesPrim.length];
int i = 0;
for (byte b : bytesPrim) bytes[i++] = b; //Autoboxing
return bytes;
}
9条答案
按热度按时间wfsdck301#
字节[]到字节[]:
字节[]至字节[]:
cedebl8k2#
Byte
类是原语byte
的一个 * Package 器 *。46scxncf3#
Java 8解决方案:
不幸的是,您不能这样做来将
Byte[]
转换为byte[]
。Arrays
对于double[]
、int[]
和long[]
具有setAll
,但对于其他原语类型则没有。kxe2p93d4#
您可以使用Apache Commons lang库ArrayUtils类中的toPrimitive方法,如此处所建议的-Java - Byte[] to byte[]
9w11ddsr5#
反向:
uqdfh47h6#
从字节[]到字节[]:
从Byte[]到byte[](使用前面定义的
B
):2admgd597#
如果有人喜欢流API超过普通循环。
pieyvz9o8#
退一步,看看更大的图景,你会被困在Byte[]和Byte[]之间,反之亦然,因为Java严格的类型大小写是这样的
列表< Byte>或列表〈Byte[]〉
现在你有了byte[]和Byte[],必须进行转换。这会有帮助。
把你所有的byte[]保存在一个列表中,如下所示:List〈byte[]〉而不是List< Byte>或List〈Byte[]〉。(byte是基元,byte[]是对象)
获取字节时,执行以下操作(网络套接字示例):
然后,当您想把所有字节放在一条消息中时,请执行以下操作:
这样,你就可以把所有的部分保存在List〈byte[]〉中,把整个保存在byte[]中,而不用在for循环中到处都是小byte[]的疯狂的复制任务。)
现在你知道了--教别人。
uwopmtnx9#
自Java 8: