微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException:索引 36 无缘无故超出长度 36 的范围

如何解决线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException:索引 36 无缘无故超出长度 36 的范围

基本上每当我在我的 java IDE (Eclipse) 中按下 Run 时它都会输出

Exception in thread "main" java.lang.Arrayindexoutofboundsexception: Index 36 out of bounds for length 36
at javax.media.j3d.GeometryArrayRetained.setCoordinate(GeometryArrayRetained.java:3634)
at javax.media.j3d.GeometryArray.setCoordinate(GeometryArray.java:1336)
at Main.Shapes.Square.Make(Square.java:38)
at Main.Second.<init>(Second.java:24)
at Main.Main.main(Main.java:7)

它指出的类叫做 Square 这是它包含的内容

package Main.Shapes;

import javax.media.j3d.Node;
import javax.media.j3d.QuadArray;
import javax.media.j3d.Shape3D;
import javax.vecmath.Point3f;

public class Square {
    Node shape;
    
    public Square() {
        
    }
    
    public Node Make(float Size) {
        QuadArray polygon1 = new QuadArray (12,QuadArray.COORDINATES);
        
        //Front
        polygon1.setCoordinate(0,new Point3f (0f,0f,0f));
        polygon1.setCoordinate(1,new Point3f (Size,0f));
        polygon1.setCoordinate(2,Size,0f));
        polygon1.setCoordinate(3,0f));

        //Back
        polygon1.setCoordinate(4,-Size));
        polygon1.setCoordinate(5,-Size));
        polygon1.setCoordinate(6,-Size));
        polygon1.setCoordinate(7,-Size));

        //Right
        polygon1.setCoordinate(8,0f));
        polygon1.setCoordinate(9,0f));
        polygon1.setCoordinate(10,new Point3f(Size,-Size));
        polygon1.setCoordinate(11,-Size));
        
        //left
        polygon1.setCoordinate(11,0f));
        polygon1.setCoordinate(12,0f));
        polygon1.setCoordinate(13,new Point3f(0f,-Size));
        polygon1.setCoordinate(14,-Size));

        shape = new Shape3D(polygon1);
        return shape;
    }
}

它指出的行是:

        polygon1.setCoordinate(12,-Size));

删除后程序运行良好,但我无法删除它们,因为它们用于创建立方体的面。

有人有什么想法吗?

解决方法

那是因为几乎所有编程语言都从 0 开始计数。所以最后一个索引将是 Size-1。

,

感谢@TimHunter 对帖子的评论,问题已得到解决

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。