我想創建一個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中使用它們) –