Java代码向ArrayList添加Square对象不生效,无报错且列表长度始终为0
问题根因
Platform类构造方法存在参数赋值错误:
构造方法接收的入参名称为numOfColumns、numOfRows,但给成员变量赋值时,错误地将未初始化的成员变量numberOfColumns、numberOfRows自身赋值给成员变量。int类型成员变量的默认值为0,因此numberOfColumns最终值为0,createColumn方法中的for循环判断条件column < this.numberOfColumns永远不成立,不会执行添加Square对象的逻辑,最终ArrayList大小始终为0。
修复方案
修改Platform类构造方法的赋值逻辑,将参数值正确赋值给成员变量即可:
public Platform(int numOfColumns,int numOfRows) { this.squaresInPlatform = new ArrayList<Square>(); // 修改为使用入参赋值 this.numberOfColumns = numOfColumns; this.numberOfRows = numOfRows; this.posX = 50; this.posY = 60; }
修改后创建Platform实例时传入的列数参数会正确生效,for循环可正常执行,Square对象会被正确添加到squaresInPlatform列表中。
内容的提问来源于stack exchange,提问作者Maros Papan
相关产品推荐
相关产品推荐

