2010-11-07 5 views
0

Je reçois un message d'erreur dans Eclipse:Besoin d'aide pour la programmation d'un jeu de mots

Le type de l'expression doit être un type de tableau, mais il résolu au joueur.

J'ai créé un objet Joueur. L'utilisateur via le JOptionPane entre le nombre de joueurs qu'ils veulent. J'essaie de stocker les noms des joueurs dans un tableau.

public class Project3 { 
public static void main(String[] args){ 

    String input = JOptionPane.showInputDialog("Enter the number of players: "); 
    int numPlayers = Integer.parseInt(input); 
    Player nameOfPlayers; 

    for(int i = 0; i < numPlayers; i++){ 
    nameOfPlayers[i] = new Player(JOptionPane.showInputDialog("Enter the number of players: ")); 
    if (input == null || input.equals(" ")) throw new IllegalArgumentException("Must enter valid name!!!"); 

    } 

} 

est Voici mon lecteur Classe:

public class Player { 
private String name; 

public Player(String name){ 
    if(name == null || name.equals(" ")) 
    throw new IllegalArgumentException("Must enter a name. "); 

    this.name = name; 

} 


public void addWord(Word w){ 

} 
public int getScore(){ 

} 
} 
+1

"Je reçois un message d'erreur dans Eclipse" n'est pas très spécifique. –

+0

J'ai modifié le message et inclus le message d'erreur. Le message indiquait: "Le type de l'expression doit être un type de tableau, mais il a été résolu en Player." –

Répondre

0

Vous utilisez l'ancienne valeur input (à partir de laquelle vous demandiez le nombre de joueurs). Vous voulez sans doute quelque chose comme ceci:

for(int i = 0; i < numPlayers; i++){ 
    input = JOptionPane.showInputDialog("Enter the player's name: "); 
    if (input == null || input.equals(" ")) 
     throw new IllegalArgumentException("Must enter valid name!!!"); 
    nameOfPlayers[i] = new Player(input); 
} 

Edit: Basé sur le message d'erreur que vous avez signalé, le problème est que nameOfPlayers est pas un tableau, mais vous traitez comme un. Essayez plutôt Player[] players = new Player[numPlayers];.

+0

J'ai apporté les corrections correctes au code mais maintenant je reçois un autre message d'erreur dans Eclipse. Le message indique "incompatibilité Type: Impossible de convertir de chaîne en joueur" –

+0

J'ai corrigé ce que j'étais confondu avec. J'ai oublié de lancer la chaîne au joueur. –

+0

Cela ne fonctionnerait pas, bien qu'il pourrait compiler. String et Player sont des types complètement différents :) –

0

On dirait que vous manque une accolade de fin (}) à la fin du premier morceau de code que vous avez collé. Vous n'avez pas fermé la classe Project3 correctement.

Modifier: maintenant je sais que l'erreur, nameOfPlayers doit être un tableau pour que vous puissiez y accéder en tant que tableau plus tard dans le code. Vous devez également le dimensionner à numPlayers lors de son initialisation.

+0

J'ai peut-être manqué l'autre orthèse. Mais le message d'erreur indiquait "Le type de l'expression doit être un type de tableau mais il a été résolu en Player" –

0

Vous définissez nameOfPlayers comme type Player - pas un tableau de Player. Il devrait être

Player[] nameOfPlayers; 

Vous devrez l'initialiser ainsi avant d'affecter les instances Player.

1

Vous n'avez pas créé de tableau. Peut-être que vous voulez dire Player [] nameOfPlayers = new Player[somevalue];

Questions connexes