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()结果声明一个局部变量,或者只是链接方法调用。