有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用java的GenericClass。尼奥。缓冲器

为不同的缓冲区类定义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) 个答案