2016-06-23 4 views
-1

Я предлагаю пользователю ввести свое имя, а также добавить игрока ai в мой ArrayList. К сожалению, я получаю ошибку «не могу найти символ» в словах «добавить» в моем коде ниже. Я предполагаю, что это что-то вроде того, что вы не импортируете что-то, я не могу сейчас это понять.Добавление в проблемы 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 DataMember одного и того же имени. Просто дайте ему другое имя, и вы должны быть в порядке:

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

Yikes, глупая ошибка от моего имени, спасибо, теперь это имеет гораздо больше смысла. Спасибо. –

Смежные вопросы