2016-06-23 101 views
-1

我提示用戶輸入他們的名字以及向我的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(); 

    } 

} 
+0

你真的應該命名ArrayList和HumanPlayer變量相同。 – TomekK

+0

HumanPlayer是一個類。 –

回答

5

你正在創建具有相同名稱的新變量作爲ArrayList,隱藏在類中的靜態ArrayList場(如果去掉調用.add()它甚至不會編譯)。您需要重命名本地player變量或player字段。

例如:

HumanPlayer humanPlayer = new HumanPlayer(name); // Renamed 
    AiPlayer aiPlayer = new AiPlayer("Computer", 0); 

    player.add(humanPlayer); 
    player.add(aiPlayer); 
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); 
+0

哎呀,代表我的愚蠢的錯誤,謝謝,這使得現在更有意義。謝謝。 –