Java:错误“不兼容的数据类型”

时间:2010-01-11 10:04:22

标签: java

private byte[] decode_text(byte[] image)
{
    int length = 0;
    int offset = 32;
    for(int i=0; i<32; ++i)
    {
        length = (length << 1) | (image[i] & 1);
    }
    byte[] result = new byte[length];
    for(int b=0; b<result.length; ++b )
    {
        for(int i=0; i<8; ++i, ++offset)
            {
            /* I'm getting error at the following line */
            result = (byte)((result << 1) | (image[offset] & 1));
            }
        }
    return result;
}

错误是不兼容的数据类型...必需的byte []和找到的字节..........

5 个答案:

答案 0 :(得分:1)

你不能对result变量进行位移,因为它是一个字节数组。

答案 1 :(得分:1)

你可能想要:

result[b] = (byte)((result[b] << 1) | (image[offset] & 1));

答案 2 :(得分:1)

此外,您无法将单个byte分配给byte - 数组。

答案 3 :(得分:0)

您正在投射所有这些操作的结果

((result << 1) | (image[offset] & 1));

(byte)并将其分配给byte[]

您可以声明一个新的字节变量,对该变量进行操作然后执行

result[i] = myNewByteVariable;

答案 4 :(得分:0)

您可能想要做类似

的事情
    byte[] result = new byte[length];
    for(int b=0; b<result.length; ++b )
    {
        byte value = 0;
        for(int i=0; i<8; ++i, ++offset)
        {
            /* I'm getting error at the following line */
            value = (byte) ((value << 1) | (image[offset] & 1));
        }
        result[b] = value;
    }