我认为我正在处理未处理的CloneNotSupported异常?

时间:2019-05-01 19:36:38

标签: java exception

我正在创建一个简单的游戏,并试图克隆构成木板的对象以进行AI处理,而不影响实际游戏。

即使在堆栈中的任何地方/我在try / catch循环中使用的这些克隆,我都收到“未处理的异常:java.lang.CloneNotSupportedException”。

这是代码。 我有实现Clonable的Space类(大部分被嗅探到了)(可能是问题的一部分):

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();
    }
}

在另一个(对象)类中,我尝试复制此空间对象数组:

    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”带有红色下划线,表示未处理的克隆错误。

如果您需要更多我的代码,请告诉我,我将其删节了以缩短时间(尽管可能会丢失某些缺少的变量或内容)。

谢谢

0 个答案:

没有答案