有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java添加到ArrayList问题

我会提示用户输入他们的名字,并将ai播放器添加到我的ArrayList中。不幸的是,我收到了一个“找不到符号”错误的话“添加”在我的代码下面。我假设这是一种不进口的东西,我现在似乎不太明白

package connectfour;

import java.util.ArrayList;
import javax.swing.*;
import userInterface.Connect4Ui;
import core.Player;
import core.HumanPlayer;
import core.AiPlayer;


/**
 *
 * @author j_ortiz9688
 */

// connect 4 main 
public class ConnectFour {

    private static ArrayList<Player>player;
    private static Connect4Ui frame; 

    public static void makePlayers(){

        player = new ArrayList<Player>();

        String name = JOptionPane.showInputDialog("Enter your name");

        HumanPlayer player = new HumanPlayer(name);


        AiPlayer ai = new AiPlayer("Computer", 0); 

        player.add(player); 
        player.add(ai);

    }



    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        frame = new Connect4Ui(); 

    }

}

共 (2) 个答案

  1. # 1 楼答案

    您正在创建一个与ArrayList同名的新变量,它隐藏了类中的静态ArrayList字段(即使删除了对.add()的调用,它也不会编译)。您需要重命名局部player变量或player字段

    例如:

        HumanPlayer humanPlayer = new HumanPlayer(name); // Renamed
        AiPlayer aiPlayer = new AiPlayer("Computer", 0); 
    
        player.add(humanPlayer); 
        player.add(aiPlayer);
    
  2. # 2 楼答案

    定义一个局部变量HumanPlayer player = new HumanPlayer(name);,该变量隐藏ArrayList同名的数据成员。只要给它起一个不同的名字,你就可以了:

    HumanPlayer human = new HumanPlayer(name); // Here!
    AiPlayer ai = new AiPlayer("Computer", 0); 
    
    player.add(human);  // and use it here, of course
    player.add(ai);