2016-01-21 111 views
0

如何将对象放入数组中?这是我的阵列。如何将对象放入数组

public static Player [] playerArray; 
Player[] playerArray = new Player [2]; 

球员

public class Player { 
    private String wpm; 
    private String mistakes; 
    private String time; 

    public Player (String nwpm,String nmistakes, String ntime){ 
     wpm = nwpm; 
     mistakes = nmistakes; 
     time = ntime; 
    } 

    public String getWPM(){ 
     return wpm; 
    } 
    public String getMistakes(){ 
     return mistakes; 
    } 
    public String getTime(){ 
     return time; 
    } 
} 

我不断收到此错误

异常线程 “main” 显示java.lang.NullPointerException

每当我试图用的球员。我做错什么了吗?你还有什么需要的吗?

编辑:添加在错误发生

public void setPlayer1(Player p){ 
    p1WPM.setText("8"); 
    p1Mis.setText(p.getMistakes()); 
    p1Time.setText(p.getTime()); 
} 
+5

'NullPointerException'出现在哪一行?你正在声明'playerArray'两次 –

+3

显示你的'main()'方法代码。另外,你为什么声明'playerArray'两次? –

+0

你如何调用'setPlayer1()'?添加正确的代码,不仅仅是不能粘在一起的代码片段 –

回答

2

例如在阵列中添加一个Player对象,你可以这样做:

Player[] playerArray = new Player [2]; 

//Create new Player object using the defined constructor 
p = new Player("a","b","c"); 

// Assign p to 1st index of array 
playerArray[0] = p; 
2

您已经声明playerArray两次这是不对的。此外,你还没有显示代码,你在哪里得到NullPointerException

如果你是新手,那么试试下面的代码:

Player[] playerArray = new Player [2]; //declare array of size 2 
Player p1 = new Player("nwpm","nmistakes","ntime"); // first player object 
Player p2 = new Player("nwpm","nmistakes","ntime"); // second player object 

playerArray[0] = p1; // first player added in the array 
playerArray[1] = p2; // second player added in the array 
0

Player[] playerArray = new Player [2];被创建阵列,而不是对象。 您应该添加

playerArray[0] = new Player(param1, param2, param3); 
playerArray[1] = new Player(param1, param2, param3); 

让所有的物品都有自己的对象

0

试试这个:

Player a = new Player("a","b","c"); 
      Player[] playerArray = new Player [2]; 
      playerArray = new Player[2]; 
      playerArray[0]=a; 
      System.out.println(playerArray[0].getTime()+" "+playerArray[0].getMistakes()+" "+playerArray[0].getWPM()); 

结果: CBA

0

异常线程 “main” 的Java。 lang.NullPointerException

Player[] playerArray = new Player [2]; 

这种说法你是刚刚创建大小2,其所有元素都是null的数组。但是你并没有在这里创造元素。

你必须实例化每个元素。

for(int i=0; i< playerArray.length;i++) 
    playerArray[i] = new Player();//with appropriate constructor 

如果你尝试在playerArrayplayerArray[0].mistakes进行任何操作,然后得到NullPointerException。您应该使用Player对象初始化阵列中的每个元素。

0

这是你的工作代码。

public class Player { 
    public static final int SIZE = 2; 
    public static Player[] playerArray = new Player[SIZE]; // Creates array of 
                  // Player of size 
                  // SIZE 

    private String wpm; 
    private String mistakes; 
    private String time; 

    public Player(String wpm, String mistakes, String time) { 
     this.wpm = wpm;// this way is more readable 
     this.mistakes = mistakes; 
     this.time = time; 
    } 

    public String getWPM() { 
     return wpm; 
    } 

    public String getMistakes() { 
     return mistakes; 
    } 

    public String getTime() { 
     return time; 
    } 

    public static void main(String[] args) { 
     /* 
     * If I wan to add something to the array it has to be object of the 
     * array type and I need to create it first 
     */ 

     // Create 2 Player objects 
     Player player1 = new Player("p11", "p12", "p13"); 
     Player player2 = new Player("p21", "p22", "p23"); 

     // arrays are indexed from 0 to size-1 
     playerArray[0] = player1; 
     playerArray[1] = player2; 

    } 
}