我目前正在使用以下代码
小组类
static List<Shoots> bullets;
public Panel() {
bullets = new ArrayList<>();
setBorder(BorderFactory.createLineBorder(Color.black));
}
另一个班级
Panel.bullets.add(new Shoots(1, Panel.headx, Panel.heady));
class Shoots {
private int speed;
private int x;
private int y;
public Shoots(int speed, int x, int y) {
this.speed = speed;
this.x = x;
this.y = y;
getX();
}
public int getX() {
return this.x;
}
}
然后当我尝试System.out.println(Panel.bullets);我得到了
[]
我怎样才能以正确的方式做到这一点?
答案 0 :(得分:0)
bullets
arraylist为空,即零元素。这就是为什么你得到那个输出。
此外,您的列表是静态的,您每次都在构造函数中分配值。这将创建一个新的arraylist,并在每次创建对象时将其分配给bullets
变量。此外,您没有在列表中添加任何内容。
答案 1 :(得分:0)
您在使用之前是否在项目符号列表中添加了任何内容每次在构造函数中初始化它。所以Panel
类的每个新对象都会初始化它并做空。所以在课堂级别创建和初始化。即。
static List<Shoots> bullets= new ArrayList<>();