2

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

void insert(T[] thearray);

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

byte[] value = new byte[4096];

但是如果我这样调用函数:

cb.插入(值);

我收到一个错误:

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

CircularBuffer 是具有插入方法的类。

我像这样实例化 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。- 使用字节。这个原始类型到对象类型的区域,例如字节 -> 字节是令人困惑的。

4

2 回答 2

6

Abyte[]不是Byte[]. 您需要先明确地将一个转换为另一个。

参见例如将包装器的 ArrayList 转换为相应的基元数组以了解执行此操作的可能方法。

于 2013-02-17T17:31:54.287 回答
2

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

于 2013-02-17T17:35:21.350 回答