Конструктор литья? - PullRequest
       1

Конструктор литья?

0 голосов
/ 30 апреля 2020

В конструкторе, как бы я представлял верхний и нижний Diagram параметры с char[][]? Приведение не работает.

public CombineLeftRight​(Diagram left, Diagram right, int animationType)

Конструктор, который инициализирует animationType предоставленным значением параметра и инициализирует плату диаграммой, полученной в результате вызова TwoDimArrayUtil.appendLeftRight() на досках, связанных с левой и правой сторонами. диаграммы.

public static char[][] appendLeftRight(char[][] left, char[][] right) {
        int numRows = (left.length > right.length) ? left.length : right.length;
        int numCols = left[0].length + right[0].length;
        char[][] retArray = new char[numRows][numCols];
        TwoDimArrayUtil.copyArray(retArray, left, 0, 0);
        TwoDimArrayUtil.copyArray(retArray, right, 0, left[0].length);
        return retArray;
    }

Заранее спасибо!

public interface Diagram {
    /**
     * Returns a two-dimensional array of characters representing a diagram.
     * 
     * @return
     */
    public char[][] getBoard();

    /**
     * Returns the next two-dimensional array of characters to display during an
     * animation.
     * 
     * @return
     */
    public char[][] nextAnimationStep();

    /**
     * Number of rows associated with the diagram.
     * 
     * @return
     */
    public int getNumberRows();

    /**
     * Number of columns associated with the diagram.
     * 
     * @return
     */
    public int getNumberCols();
}

1 Ответ

0 голосов
/ 30 апреля 2020

Я предполагаю, что если ваш конструктор имеет такой формат:

// Constructor
public CombineLeftRight​(Diagram left, Diagram right, int animationType){
   ...
}

Тогда вам нужно преобразовать каждый Diagram в двумерный массив char - что-то вроде

char[][] left2dArr = left.getBoard();
char[][] right2dArr = right.getBoard();

Так что вы можете вызвать метод stati c, как вы упомянули ... как

TwoDimArrayUtil.appendLeftRight(left2dArr, right2dArr);
// or simply
TwoDimArrayUtil.appendLeftRight(left.getBoard(), right.getBoard());

собрать все это вместе (все еще догадываясь, поскольку в вашем вопросе недостаточно кода) чтобы знать наверняка), ваш конструктор может выглядеть так:

// Constructor
public CombineLeftRight​(Diagram left, Diagram right, int animationType){
   ...
   TwoDimArrayUtil.appendLeftRight(left.getBoard(), right.getBoard());
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...