2017-02-11 3 views
0

Я довольно новичок в кодировании, так что простите меня, если это глупый вопрос. Я пытаюсь напечатать многомерный массив, используя Arrays.deepToString(Object[] a); единственная проблема заключается в том, что когда я пытаюсь сделать это в Eclipse, это дает мне ошибку: «Метод deepToString (Object []) в типе Массивы не применим для аргументов (Board)»Использование Arrays.deepToString для разных типов массивов

Мой код выглядит как это:

import java.util.Arrays; 
import java.util.Scanner; 
public class Gameplay 
{ 
    public static void main(String[] args) 
    { 
     Board show = new Board(); 
     String s = Arrays.deepToString(show.yourBoard(show)); 
     System.out.print(s);   
    } 
} 


public class Board 
{ 
    private char[][] gameBoard; 
    private Ship[] ships; 


    public Board() 
    { 
     gameBoard = new char[10][10]; 
     ships = new Ship[5]; 

     for(int r = 0; r < 10; r++) 
      for(int c = 0; c < 10; c++) 
       gameBoard[r][c] = '~'; 
    } 


    public Board yourBoard(Board input) 
    { 
     return input; 
    } 
} 

метод yourBoard(Board input) предполагается модифицировать show в некотором роде, но, прежде чем делать что-либо, я просто хочу, чтобы убедиться, что она возвращает правильно. В любом случае, я могу на самом деле поставить метод Arrays.deepToString(Object[] a) для использования с моим массивом, чтобы он действительно выводил правильно?

+5

'Board' _isn't_ массив. Он _ содержит_ массивы. (Два разных). –

+1

Вам нужно будет вызвать 'Arrays.deepToString (gameBoard)'. Я бы рекомендовал вам переопределить метод 'toString' на' Board'. –

ответ

0

Во-первых, переопределить toString() способ на Board. Arrays.deepToString() получить массив, поэтому вы должны сделать Arrays.deepToString(new Board[10])