在Java的2D对象数组中强制转换



我正在用java开发跳棋游戏。我像这样代表我的董事会:

Object[][] board = new Object[8][8];

我希望能够在2D对象数组中放置检查器对象或null值。

我有一个方法,将Checker对象分配给2D对象数组中的位置。

我的问题是,当我为方法编写测试时:

    public void testPopulateCheckers() {
        assertEquals("Red", game.board[0][4].color)
    }

color方法(这是我的Checker类的方法)没有显示。我试过将其作为检查器,但它只列出了对象方法可用。

// This should work
public void testPopulateCheckers() {
    assertEquals("Red", ((Checker) game.board[0][4]).color)
}

但是,如果您存储的都是Checker对象或null,请将声明更改为this,这样您就不必强制转换了。

Checker[][] board = new Checker[8][8];

如果你想在矩阵上调用color()之类的方法,你应该使用Checker来声明你的矩阵

Checker[][] board = new Checker[ 8 ][ 8 ];

,当然要确保你初始化了所有的64个Checkers,因为只有棋盘是由上面的行初始化的。

像这样定义你的矩阵…

Object[][] board = new Checker[8][8];
public void testPopulateCheckers() {
    assertEquals("Red", ((Checker) game.board[0][4]).color)
}

你需要强制转换它

编辑:方法添加!

相关内容

  • 没有找到相关文章

最新更新