2012-09-24 45 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

相关问题