首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实例化FloatBuffer[]时出现异常

实例化FloatBuffer[]时出现异常
EN

Stack Overflow用户
提问于 2011-10-15 15:22:07
回答 1查看 210关注 0票数 1

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

我得到了

代码语言:javascript
复制
java.lang.ArrayIndexOutOfBoundsException: 0

在这一行中,无论我使用什么方法将新的FloatBuffer实例化到数组中:

代码语言:javascript
复制
    for(int i=0; i<144;i++){
    vbuffers[i] = BufferUtils.createFloatBuffer(buffervolume*7);
    }

我也尝试了一下,得到了同样的错误:

代码语言:javascript
复制
        vbuffers[i]=FloatBuffer.allocate(buffervolume*7);

以下是完整的相关代码:

代码语言:javascript
复制
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来管理我的数据,并获得了非常好的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-15 15:25:03

这个异常强烈地表明vbuffers是一个长度为零的数组。检查chunklimit是否是非零。

通常,当你有这样的代码时:

代码语言:javascript
复制
vbuffers = new FloatBuffer[chunklimit*chunklimit*4];
for(int i = 0; i < 144; i++) {
    vbuffers[i] = ...

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

通常更好的做法是在for循环中使用数组的大小:

代码语言:javascript
复制
vbuffers = new FloatBuffer[chunklimit*chunklimit*4];
for(int i = 0; i < vbuffers.length; i++) {
    vbuffers[i] = ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7776427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档