2010-11-07 173 views
0

我在Eclipse中收到錯誤消息:需要幫助編程文字遊戲

類型的表達式必須是一個數組類型,但它決心球員。

我已經創建了一個對象播放器。用戶通過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(){ 

} 
} 
+1

「我在Eclipse中收到錯誤消息」不是很具體。 – 2010-11-07 20:40:47

+0

我編輯了帖子,幷包含錯誤消息。該消息指出,「表達式的類型必須是數組類型,但它解析爲播放器。」 – 2010-11-07 20:46:43

回答

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

+0

我已經對代碼進行了適當的更正,但現在我在Eclipse中收到了另一個錯誤消息。該消息指出「類型不匹配:不能從字符串轉換爲播放器」 – 2010-11-07 20:52:41

+0

我糾正了我所困惑的內容。我忘了把弦放到播放器上。 – 2010-11-07 21:01:10

+0

雖然可以編譯,但這不起作用。字符串和播放器是完全不同的類型:) – 2010-11-07 22:05:48

0

它看起來像你缺少結束括號(})在你粘貼代碼的第一位結束。您尚未正確關閉Project3課程。

編輯:現在我知道錯誤,nameOfPlayers需要是一個數組,供您在代碼中稍後以數組的形式訪問它。您還需要在初始化時將其大小設置爲numPlayers

+0

我可能錯過了其他大括號。但錯誤消息指出「表達式的類型必須是數組類型,但它解析爲播放器」 – 2010-11-07 20:47:28

0

您正在將nameOfPlayers定義爲Player類型 - 不是Player的數組。它應該是

Player[] nameOfPlayers; 

您將需要初始化以及分配Player實例之前。

1

您還沒有創建數組。 也許你的意思是Player [] nameOfPlayers = new Player[somevalue];