如何解决线程“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 举报,一经查实,本站将立刻删除。