在Java中使用2D对象数组进行转换

ste*_*her 0 java polymorphism casting multidimensional-array

我正在研究java中的跳棋游戏.我代表我的董事会是这样的:

Object[][] board = new Object[8][8];
Run Code Online (Sandbox Code Playgroud)

我希望能够在2D对象数组中放置Checker对象或null值.

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

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

    public void testPopulateCheckers() {
        assertEquals("Red", game.board[0][4].color)
    }
Run Code Online (Sandbox Code Playgroud)

颜色的方法(这是我的方法检查类)没有露面.我已经尝试将其作为Checker进行投射,但它只列出了可用的Object方法.

Ran*_*ggs 5

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

但是,如果您要存储的只是Checker对象或null,请将声明更改为此,这样您就不必进行强制转换.

Checker[][] board = new Checker[8][8];
Run Code Online (Sandbox Code Playgroud)