我遇到了一个starnge java cast错误。
当我将一些对象转换为byte []时,
byte [] a = new byte[lenght];
a = (byte[])obj;//obj is actually a byte array with the same number of elements
我遇到以下错误
[Ljava.lang.Byte; incompatible with [B
是什么原因引起的? 提前感谢您的见解。
答案 0 :(得分:4)
您正在尝试将Byte[]
投射到byte[]
。你不能用Java做到这一点。
您有两种选择:
更改Byte[]
中提供obj
的内容以改为创建byte[]
。
将Byte[]
转换为byte[]
。例如:
Byte[] tmp (Byte[]) obj;
byte[] a = new byte[obj.length];
for (int i = 0; i < a.length; i++) {
a[i] = tmp[i];
}