我似乎无法直接从对象访问任何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 + ", ");
}
}
}
}
答案 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() + ", ");