带有java.nio.Buffer的Generic-Class

时间:2015-06-22 14:55:09

标签: java generics buffer

为不同的Buffer类定义了API调用:

apicall(ByteBuffer buffer);
apicall(FloatBuffer buffer);
apicall(IntBuffer buffer);
apicall(LongBuffer buffer);
apicall(DoubleBuffer buffer);

我需要编写一些使用它的类,但是我想使用泛型类而不是编写五个类。

MyClass<T extends Buffer> ...

问题是,没有为每个缓冲区定义apicall(),即不为CharBuffer定义。

myMethod(T buffer) {apicall(buffer);}

失败。我的解决方法是这样的:

if (buffer instanceof FloatBuffer) {
    apicall((FloatBuffer)buffer);
} else if (buffer instanceof ByteBuffer) {
    apicall((ByteBuffer)buffer);
} else ...

我对此并不满意。我的问题是,如果有更好的方法来解决我的问题。

0 个答案:

没有答案