使用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) 个答案