我想创建一个144 FloatBuffers的数组,所以我可以轻松访问每个使用整数来挑选哪一个。不,我的意思不是FloatBuffer长。我正在研究使用一个类来包含所有的FloatBuffers,但这需要一些时间。有什么想法吗?异常实例化FloatBuffer []
我得到
java.lang.ArrayIndexOutOfBoundsException: 0
在这一行,不管我用什么方法来尝试实例化新FloatBuffer到数组:
for(int i=0; i<144;i++){
vbuffers[i] = BufferUtils.createFloatBuffer(buffervolume*7);
}
我也尝试这样做,得到了同样的错误:
vbuffers[i]=FloatBuffer.allocate(buffervolume*7);
以下是完整的相关代码:
public class myclass {
public FloatBuffer[] vbuffers;
public myclass(){
vbuffers=new FloatBuffer[chunklimit*chunklimit*4];
for(int i=0; i<144;i++){
vbuffers[i] = BufferUtils.createFloatBuffer(chunkvolume*7);
}
}
}
我想补充一点,我结束了使用一个大的FloatBuffer和glbuffersubdata来管理我的数据,并得到了非常好的结果。
什么是'chunklimit'? –
我的猜测是vbuffers [i]。检查你的数学,确保chunklimit * chunklimit * 4足够大。使用调试器来查看它抱怨的是什么值。 – VoidStar
我会检查你的FloatBuffers使用本地字节顺序的直接内存。在big endian中使用堆或直接内存可能会慢很多。 (除非你需要在big-endian中使用它们) –