我在Eclipse中收到一条错误消息:
表达式的类型必须是数组类型,但它已解析为Player。
我创建了一个对象Player。用户通过JOptionPane输入他们想要的玩家数量。我试图将玩家名称存储在数组中。
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!!!");
}
}
这是我的班主任:
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(){
}
}
答案 0 :(得分:1)
您尚未创建数组。
也许你的意思是Player [] nameOfPlayers = new Player[somevalue];
答案 1 :(得分:0)
看起来你在粘贴的第一段代码末尾缺少一个结束括号(})。您尚未正确关闭Project3
课程。
编辑:现在我知道错误,nameOfPlayers
需要是一个数组,以便您稍后在代码中以数组的形式访问它。您还需要在初始化时将其大小调整为numPlayers
。
答案 2 :(得分:0)
您正在使用input
的旧值(从您询问玩家数量时开始)。你可能想要更像这样的东西:
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);
}
编辑:根据您发布的错误消息,问题是nameOfPlayers
不是数组,但您将其视为一个数组。请改为Player[] players = new Player[numPlayers];
。
答案 3 :(得分:0)
您将nameOfPlayers
定义为Player
类型 - 而不是Player
的数组。它应该是
Player[] nameOfPlayers;
在分配Player
个实例之前,您还需要对其进行初始化。