如何将byte []传递给此函数

时间:2013-02-17 17:30:16

标签: java

我有一个带有此签名的函数:

void insert(T[] thearray);

我有一个像这样的字节数组:

byte[] value = new byte[4096];

但如果我这样称呼函数:

cb.insert(值);

我收到错误:

The method insert(Byte) in the type CircularBuffer<Byte> is not applicable for the arguments (byte[])

CircularBuffer是带有insert方法的类。

我像这样实例化CircularBuffer:

CircularBuffer<Byte> cb = new CircularBuffer<Byte>(4096);

如何将值传递给此插入函数?

要清楚,CircularBuffer类声明如下:

public class CircularBuffer<T>

public CircularBuffer(int size) //ctor

如果您需要更多详细信息:

https://codereview.stackexchange.com/questions/22826/circular-buffer-implementation-for-buffering-tcp-socket-messages

编辑最后我决定出于效率原因创建一个专门的ByteCircularBuffer。 - 使用字节。这种原始类型的区域对象类型,例如字节 - &gt;字节令人困惑。

2 个答案:

答案 0 :(得分:6)

byte[]不是Byte[]。您需要先将一个显式转换为另一个。

参见例如 Cast ArrayList of wrappers to corresponding array of primitives 可能的方法。

答案 1 :(得分:2)

Bytebyte完全不同。将字节数组转换为字节数组(这需要大量时间和内存),或编写新类ByteCircularBuffer(使用CircularBuffer<T>并将T替换为byte)。