2012-09-24 91 views
5

現在我無法用空格填充數組。每當我使用數組填充方法,我總是收到一個異常。現在我排除了其餘的代碼,只包含了導致問題的那些代碼。這裏是。注意我是java的初學者,所以如果這個問題太簡單,就不要生氣。我在這裏搜索,找不到任何東西。Arrays.fill()方法導致異常

public class board 
{  
    public static void main(String args[]) 
    { 
     char board [][] = new char [6][7]; 
     int column=0; 
     int row=0; 

     java.util.Arrays.fill(board,' '); 
    } 
} 

異常說

異常線程 「main」 java.lang.ArrayStoreException:
java.lang.Character中
在java.util.Arrays.fill(Arrays.java: 2710)
在java.util.Arrays.fill(Arrays.java:2685)
在board.main(board.java:26)

回答

11

Arrays.fill需要一個單維數組,您傳遞的是鋸齒狀數組。

相反,這樣做:

for(int x=0;x<board.length;x++) 
    for(int y=0;y<board[x].length;y++) 
     board[x][y] = ' '; 

或本:

for(int x=0;x<board.length;x++) 
    Arrays.fill(board[x], ' '); 
+0

有趣。我會看看這是如何解決的。 – DrinkJavaCodeJava

+2

它可能編譯,因爲編譯器將它解釋爲調用'fill(Object [] a,Object val)' – SJuan76

+0

更好的是(char [] row:board){java.util.Arrays.fill(row,' ');}' – OldCurmudgeon

2

從Java API ArrayStoreException信息: 拋出,表明一個已經嘗試來存儲錯誤類型的對象轉換爲數組。

Arrays.fill(); 

方法使用單個維數組作爲參數,要傳遞一個2-d陣列從而異常

+0

那麼填充方法的重點是什麼,如果它只適用於單維數組? – DrinkJavaCodeJava

相關問題