2016-01-21 98 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; 

    } 
}