java cast错误:[Ljava.lang.Byte;与[B

时间:2013-08-28 02:24:01

标签: java casting

我遇到了一个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

是什么原因引起的? 提前感谢您的见解。

1 个答案:

答案 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];
    }