2012-09-24 5 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,' '); 
    } 
} 

例外は、 "メイン" 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は、1次元配列を想定しているので、ギザギザの配列を渡しています。代わりに

、これを行う:JAVA APIから でArrayStoreException

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

興味深い例外を2次元配列を渡します。これがどのように機能するかを見ていきます。 – DrinkJavaCodeJava

+2

これは、コンパイラが 'fill(Object [] a、Object val) 'の呼び出しとして解釈するためにコンパイルされている可能性があります。 – SJuan76

+0

' for(char [] row:board){java.util.Arrays.fill(row、 ');} ' – OldCurmudgeon

2

:試みがの間違った種類を格納するためになされたことを示すためにスローされ

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

またはこれをオブジェクトを配列に格納します。

Arrays.fill(); 

メソッドは、パラメータとして単一次元アレイを取り、あなたがこのよう

+0

したがって、1次元の配列でしか動作しない場合、fillメソッドのポイントは何ですか? – DrinkJavaCodeJava

関連する問題