访问存储在Object中的实例的变量

时间:2015-03-27 03:29:34

标签: java arrays object

我似乎无法直接从对象访问任何get / set方法或变量。我试图获得存储在变量中的敌人等级,如下所示。最后一行,我想要'做"世界[i] [j] .enemy.getLevel()"但显然这是非法举动?目前它只是打印对象id引用。

是否有转换回我丢失的对象?

Monster类扩展了Player。

创建:

World[i][j].enemy = spawnEnemy(World[i][j].mapLevel); //Spawn a monster.

其他代码:

    public static Object spawnEnemy(int level) {
    //Spawns a monster and returns the Object.
    Monster enemy = new Monster();
    enemy.setLevel(level);
    enemy.setMaxHealth(level * 5);
    enemy.setHealth(enemy.getMaxHealth());
    enemy.setDamage(enemy.getLevel() * 3);
    return enemy;
}

    public static void enemiesAlive() {

for (int i = 0; i < mapSizeX; i++)
    {
    for (int j = 0; j < mapSizeY; j++)
        {
        if (World[i][j].enemyAlive)
            {
            System.out.print(i + "-" + j + " with a level of " + World[i][j].enemy + ", ");
            }
        }
    }
}

1 个答案:

答案 0 :(得分:3)

  

最后一行,我想要&#39;做&#34;世界[i] [j] .enemy.getLevel()&#34;

问题是您忘记了对getLevel()的调用,只是打印了对象引用。

更改

System.out.print(i + "-" + j + " with a level of " + World[i][j].enemy + ", ");

System.out.print(i + "-" + j + " with a level of " + ((Player)World[i][j].enemy).getLevel() + ", ");