简体   繁体   English

无法添加到ArrayList

[英]Can't add to ArrayList

Been trying to add an object (coordinates of a missile) to ArrayList, but it only adds the last one. 试图将一个对象(导弹的坐标)添加到ArrayList中,但是它仅添加了最后一个对象。 There's only one object in ArrayList. ArrayList中只有一个对象。

Missile class 导弹级

   public ArrayList<Missilies> missilies = new ArrayList<Missilies>();

  //  New missile object  ////////

 public Missilies(int x, int y){

    // missilies = new ArrayList<Missilies>();
    this.x=x;
    this.y=y;

     visible=true;

 }

   public  void fire(){


    System.out.println("Fire !!!");

        missilies.add(new Missilies(x,y));
        System.out.println(" New missile added, total="+
                    +missilies.size()+"  missile    "+missilies);
 }

Player class. 播放器类。 Now it works. 现在可以了。

 @Override
public void keyPressed(KeyEvent e) {
    switch (e.getKeyCode()){
    case KeyEvent.VK_SPACE:{

        if (lastKey == null || lastKey != e.getKeyChar()) {
            lastKey = e.getKeyChar();
            Missilies m = new Missilies(x,y);
            m.fire();
            missilies.add(m);
           System.out.println("Missilies "+missilies);


            System.out.println("keyPressed: " + lastKey);
        }

By having the list of missiles inside the Missilies class, you make each missile have its own list - and the missile itself is the only thing on its list. 通过在Missilies类中包含导弹列表,您可以使每种导弹都有其自己的列表-导弹本身是列表中唯一的东西。 You need to move the declaration of the list to a different class. 您需要将列表的声明移到其他类。

尝试将射击方法或列表声明移至Missile类之外,您将在列表中填充所有导弹对象

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM