我正在尝试创建一个由144个FloatBuffers组成的数组,这样我就可以轻松地使用整数访问每个整数,以选择哪个整数。不,我不是说FloatBuffer 144长。我正在研究使用包含所有FloatBuffers的类,但这需要一些时间。有什么想法吗?

我懂了

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来管理我的数据,并获得了非常好的结果。

最佳答案

该异常强烈暗示vbuffers是零长度数组。检查chunklimit是否为非零。

通常,当您具有以下代码时:

vbuffers = new FloatBuffer[chunklimit*chunklimit*4];
for(int i = 0; i < 144; i++) {
    vbuffers[i] = ...


存在chunklimit*chunklimit*4144不同的风险,从而导致错误。

通常最好在for循环中使用数组的大小:

vbuffers = new FloatBuffer[chunklimit*chunklimit*4];
for(int i = 0; i < vbuffers.length; i++) {
    vbuffers[i] = ...

关于java - 实例化FloatBuffer []的异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7776427/

10-12 02:12