Необработанное CloneNotSupported Исключение, которое, я думаю, я обрабатываю? - PullRequest
0 голосов
/ 01 мая 2019

Я создаю простую игру и пытался клонировать объекты, составляющие игровое поле, для обработки ИИ без влияния на саму игру.

Я получаю «Необработанное исключение: java.lang.CloneNotSupportedException», хотя везде в стеке / где я использую эти клоны, которые есть в циклах try / catch.

Воткод.У меня есть свой класс Space (большая часть которого snpied), который реализует Clonable (это может быть частью проблемы):

public class Space extends Pane implements Cloneable {



    public Space(int x, int y, boolean light) {
    }

    protected Object clone() throws CloneNotSupportedException {
        try {
            return super.clone();
        } catch (Exception e) {}

        return new Object();
    }
}

В другом (объектном) классе я пытаюсь сделать копию этого массива Spaceобъекты:

    public Space[][] copyBoard(Space[][] thisBoard) throws CloneNotSupportedException {
        Space[][] copy = new Space[8][8];
        for (int x = 0; x < 8; x++) {
            for (int y = 0; y < 8; y++) {
                Space thisSpace = thisBoard[x][y];
                try {
                    copy[x][y] = (Space) thisSpace.clone();
                } catch (Exception e) {}
            }
        }
        return copy;
    }

Наконец, где ошибка в другом классе (объекте):

 try { //this in my constructor
     space.setOnMouseClicked(e-> onClick(finalX,finalY)); //error on "onClicked"
 } catch (Exception e) { }



 public void onClick(int x, int y) throws CloneNotSupportedException{
 if (processMove(move)) {
    setActiveSpace(null);
    try {
        processMove(compPlayer.getBestMove(spaceBoard)); //getBestMoves copys SpaceBoard, and deals w/ the exception too.
    } catch (Exception e) {}
}    

"onClick" подчеркнут красным, что говорит о необработанной ошибке клонирования.

Если вам нужно больше моего кода, дайте мне знать, я сократил его для сокращения (хотя могут быть ссылки на некоторые пропущенные переменные или вещи).

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...