簡體   English   中英

用Java轉換2D對象數組

[英]Casts in 2D object array in Java

我正在用Java開發跳棋游戲。 我代表董事會是這樣的:

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

我希望能夠在2D對象數組中放置一個Checker對象或一個值。

我有一種方法可以將Checker對象分配給2D對象數組中的位置。

我的問題是,當我去為該方法編寫測試時:

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

顏色方法(這是我的Checker類的方法)沒有顯示。 我嘗試過將其強制轉換為Checker ,但它僅列出了可用的Object方法。

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

但是,如果要存儲的所有內容都是Checker對象或為null,請將聲明更改為此,這樣就不必強制轉換。

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

您需要投射它。

編輯:方法已添加!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM