2016-01-21 3 views
0

Comment placer un objet dans ma matrice? C'est mon tableau.Comment placer un objet dans un tableau

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

joueur

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; 
    } 
} 

Je continué à obtenir cette erreur

Exception dans le thread "principal" java.lang.NullPointerException

chaque fois que j'essayé d'utiliser le lecteur. Est-ce que j'ai fait quelque chose de mal? Y a-t-il autre chose dont vous avez besoin?

Edit: ajout où les erreurs se

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

où la ligne 'NullPointerException' se produit? Vous déclarez 'playerArray' deux fois –

+3

montrez votre code de méthode' main() '. De même, pourquoi déclarez-vous' playerArray' deux fois? –

+0

comment vous appelez 'setPlayer1()'?Ajoutez du code approprié et pas seulement des extraits qui ne peuvent pas être collés ensemble –

Répondre

2

Par exemple, pour ajouter un objet joueur dans le tableau que vous pouvez faire:

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

Vous avez déclaré playerArray deux fois ce qui est faux. En outre, vous n'avez pas montré le code où vous obtenez le NullPointerException.

Si vous êtes débutant alors essayez le code ci-dessous:

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]; crée le tableau, pas les objets. Vous devez ajouter

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

d'avoir tous les éléments ont leur objet

0

Essayez ceci:

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()); 

Résultat: CBA

0

Exception dans le thread java "principal". lang.NullPointerException

Player[] playerArray = new Player [2]; 

Avec cette déclaration, vous êtes juste en train de créer un tableau de taille 2 dont tous les éléments sont null. Mais vous ne créez pas d'éléments ici.

Vous devez instancier chaque élément.

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

Si vous essayez d'effectuer toute opération sur playerArray comme playerArray[0].mistakes puis se NullPointerException. Vous devez initialiser chaque élément du tableau avec un objet Player.

0

Voici le code de travail pour vous.

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; 

    } 
}