2012-09-24 9 views
5

En este momento estoy teniendo problemas para llenar una matriz con espacios. Cada vez que uso el método de relleno de array sigo recibiendo una excepción. En este momento, excluí el resto del código y solo incluí los que causan problemas. Aquí está. Tenga en cuenta que soy un principiante de Java, así que no te enojes si es una pregunta demasiado simple. He buscado aquí y no he podido encontrar nada.El método Arrays.fill() causa una excepción

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,' '); 
    } 
} 

La excepción dice

Excepción en hilo Java.Lang.ArraystoreException "principal":
java.lang.Character
en java.util.Arrays.fill (Arrays.java: 2710)
en java.util.Arrays.fill (Arrays.java:2685)
en board.main (board.java:26)

Respuesta

11

Arrays.fill espera una matriz de una dimensión, está pasando en una matriz dentada.

En su lugar, hacer esto:

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

o esto:

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

interesante. Veré cómo funciona esto. – DrinkJavaCodeJava

+2

Probablemente compila porque el compilador lo interpreta como una llamada a 'fill (Object [] a, Object val)' – SJuan76

+0

Mejor aún 'para (char [] row: board) {java.util.Arrays.fill (fila, ' ');} ' – OldCurmudgeon

2

DE API de JAVA ArrayStoreException: Lanzado para indicar que un intento se ha hecho para almacenar el tipo incorrecto de objeto en una matriz.

método
Arrays.fill(); 

toma una única matriz dimensional como un parámetro, que está pasando una matriz 2-D de este modo la excepción

+0

Entonces, ¿cuál es el objetivo del método de llenado si solo funciona en matrices dimensionales únicas? – DrinkJavaCodeJava

Cuestiones relacionadas