2012-09-24 12 views
5

In questo momento ho problemi a riempire un array con spazi. Ogni volta che uso il metodo di riempimento dell'array continuo a ricevere un'eccezione. In questo momento ho escluso il resto del codice e incluso solo quelli che causano problemi. Ecco qui. Nota Sono un principiante di java quindi non arrabbiarti se questa è una domanda troppo semplice. Ho cercato qui e non ho trovato nulla.Il metodo Arrays.fill() causa un'eccezione

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

L'eccezione dice

Exception in thread "main" java.lang.ArrayStoreException:
java.lang.Character
a java.util.Arrays.fill (Arrays.java: 2710)
a java.util.Arrays.fill (Arrays.java:2685)
a board.main (board.java:26)

risposta

11

Arrays.fill prevede un array monodimensionale, stai passando in un array frastagliato.

Invece, fare questo:

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

o questo:

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

interessante. Vedrò come funziona. – DrinkJavaCodeJava

+2

Probabilmente compila perché il compilatore lo interpreta come una chiamata a 'fill (Object [] a, Object val)' – SJuan76

+0

Better still' per (char [] row: board) {java.util.Arrays.fill (row, ' ');} ' – OldCurmudgeon

2

da Java API ArrayStoreException: Gettato per indicare che un tentativo è stato fatto per memorizzare il tipo sbagliato di oggetto in una matrice.

metodo
Arrays.fill(); 

prende una singola matrice tridimensionale come parametro, si passa una matrice 2-D così l'eccezione

+0

Quindi, qual è il punto del metodo di riempimento se funziona solo su singoli array dimensionali? – DrinkJavaCodeJava

Problemi correlati