java强制转换错误:[Ljava.lang.Byte;与[B]不兼容
我遇到了starnge java cast错误 当我将某个对象强制转换为字节[]时java强制转换错误:[Ljava.lang.Byte;与[B]不兼容,java,casting,Java,Casting,我遇到了starnge java cast错误 当我将某个对象强制转换为字节[]时 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 这是什么原因? 提前感谢您的见解。您正在尝试将字节[]转换为字节[]。在Java中不能这样做 你
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
这是什么原因?
提前感谢您的见解。您正在尝试将
字节[]
转换为字节[]
。在Java中不能这样做
你有两个选择:
- 更改
中提供的obj
以创建Byte[]
Byte[]
- 将
转换为字节[]
。例如:字节[]
Byte[] tmp (Byte[]) obj; byte[] a = new byte[obj.length]; for (int i = 0; i < a.length; i++) { a[i] = tmp[i]; }
Byte[]tmp(Byte[])obj; 字节[]a=新字节[obj.length]; for(int i=0;i
字节[]
强制转换为字节[]
。在Java中不能这样做
你有两个选择:
- 更改
中提供的obj
以创建Byte[]
Byte[]
- 将
转换为字节[]
。例如:字节[]
Byte[] tmp (Byte[]) obj; byte[] a = new byte[obj.length]; for (int i = 0; i < a.length; i++) { a[i] = tmp[i]; }
Byte[]tmp(Byte[])obj; 字节[]a=新字节[obj.length]; for(int i=0;i
Byte
和Byte
可以装箱/拆箱,但这两种类型的数组都不能相互转换。Byte[]!=Byte[]
“Byte”是一个可以包含“byte”的对象类。“byte”是一个“标量”值,而不是对象类。我猜“obj”被声明为“byte[]”,而不是“byte[]”。byte
和byte
可以装箱/取消装箱,但这两种类型的数组都不能相互转换。byte[!=byte[]
。谢谢。对象的类型是什么?我的意思是什么时候确定对象的类型?我在其他地方使用过同一个对象,但它根本没有类型(这里,它的类型似乎是Byte[])。对象的类型是在创建时确定的,它从不更改。我重复它,它从不更改。如果您有Byte[]
然后它被创建为一个字节[]
。谢谢。对象的类型是什么?我的意思是什么时候确定对象的类型?我在其他地方使用过相同的对象,但它根本没有类型(这里,它的类型似乎是字节[])。对象的类型是在创建时确定的,它从不更改。我重复一遍,它从不更改。如果您有字节[]
,则它是作为字节[]
创建的。