Java 将泛型与缓冲区类一起使用

Java 将泛型与缓冲区类一起使用,java,android,generics,buffer,bytebuffer,Java,Android,Generics,Buffer,Bytebuffer,我有一个类,它使用了ByteBuffer。我目前在类的成员声明中创建ByteBuffer作为FloatBuffer,例如 class MyClass { private FloatBuffer buffer = ByteBuffer .allocateDirect(4) .order(ByteOrder.nativeOrder()) .asFloatBuffer(); // etc. } 理想情况下,我希望将ByteBuffer设置

我有一个类,它使用了
ByteBuffer
。我目前在类的成员声明中创建
ByteBuffer
作为
FloatBuffer
,例如

class MyClass {

    private FloatBuffer buffer = ByteBuffer
        .allocateDirect(4)
        .order(ByteOrder.nativeOrder())
        .asFloatBuffer();

// etc.

}
理想情况下,我希望将
ByteBuffer
设置为泛型,以便在实例化类时可以声明其类型,但我对如何实现这一点感到困惑。我希望我能用一些东西,比如:

class MyClass<T extends Buffer> {
class-MyClass{

在类声明中,但我仍然需要确定要调用的正确的
ByteBuffer
方法,即
asFloatBuffer()
asShortBuffer()
asLongBuffer()
等。也许有更好的方法来实现这一点?

您的代码没有编译。新的
是多余的。如果将其声明为
字节缓冲区
,并在您知道需要时执行
asFloatBuffer()
等操作,会更有意义。谢谢EJP。是的,
新的
是一个错误(我会编辑)。您建议我如何声明我希望类实例化中的
ByteBuffer
是什么类型?另外,如果我使用
asFloatBuffer
,我不需要将其声明为
FloatBuffer
?我不能将后者与
ByteBuffer
一起使用(不兼容类型)。您不了解“将其声明为ByteBuffer”的哪一部分?显然,您可以在需要时为asFloatBuffer()结果声明一个局部变量,或者只是链接方法调用。