我有一个带有此签名的函数:
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
如果您需要更多详细信息:
编辑最后我决定出于效率原因创建一个专门的ByteCircularBuffer。 - 使用字节。这种原始类型的区域对象类型,例如字节 - &gt;字节令人困惑。
答案 0 :(得分:6)
byte[]
不是Byte[]
。您需要先将一个显式转换为另一个。
参见例如 Cast ArrayList of wrappers to corresponding array of primitives 可能的方法。
答案 1 :(得分:2)
Byte
与byte
完全不同。将字节数组转换为字节数组(这需要大量时间和内存),或编写新类ByteCircularBuffer
(使用CircularBuffer<T>
并将T
替换为byte
)。