0

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

这是什么原因造成的?提前感谢您的洞察力。

4

1 回答 1

4

您正在尝试将 aByte[]转换为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];
    }
    
于 2013-08-28T02:36:58.677 回答