使用append()操作ArrayList时报Argument is not an array错误原因咨询
问题原因
- 你调用的
append()是Processing内置的数组专属操作方法,要求第一个入参必须为数组类型,作用是为数组追加元素并返回新数组,不支持ArrayList类型作为入参,因此运行时会抛出IllegalArgumentException: Argument is not an array异常。 - 编辑器未报错是因为Processing的全局方法入参多为
Object泛型,编译阶段不会做严格的类型校验,只有运行时实际检查参数类型时才会抛出异常。
修复方案
将append(rays, 新元素)的写法替换为ArrayList自带的add()方法即可,修改后代码如下:
ArrayList<Ray> rays = new ArrayList<Ray>(); Particle() { for(int a=0; a < 360; a+=10) { rays.add(new Ray(position, radians(a))); } }
内容的提问来源于stack exchange,提问作者Procode238
相关产品推荐
相关产品推荐

