2015-11-02 121 views
0

此代码看似编前:无法从字节[]转换为字节

private static int addTagLengthValue(int i, int length, byte[] temp, byte[] buffer, int index) { 
    buffer[index++] = i; 
    buffer[index++] = (byte) length; 
    if (length > 0) 
     buffer[index++] = temp; 
    return (index); 
} 

但现在我得到这些错误:

类型不匹配:不能从字节[]转换为字节 类型不匹配:不能从int转换为字节

我想我可以将我转换为字节,但我该如何处理temp参数?我只是维护代码,并出现这些错误。这是否是由于使用不同版本的Java?

+1

这个'buffer [index ++] = temp;'对我没有意义。你正试图在byte []'的单个索引上写一个完整的'byte []'? – Tom

+5

这是不可能的,这是在任何版本的Java编译过的。如果您维护代码,请使用您的源代码版本管理软件回顾并查看最初丢弃或添加的内容。 – RealSkeptic

+0

是的,你可以投我到字节**缓冲区[索引++] =(字节)我; **但没有办法你可以转换字节[]到字节 –

回答

1

你有一个类型错误。变量temp应该是byte,而不是byte[]。 是的,你可以转换到intbyte

int i = 10;

byte b = (byte) i;

但是你要确保你不松显著位。