如何从ArrayList获取特定的子类?

时间:2013-04-12 00:34:15

标签: java

我有一个名为" Entity"的课程,这是由其他课程扩展的,例如"播放器"和#34;史莱姆"暴民。在另一个名为" Level"我有一个名为entities的ArrayList,现在我将这些单独的类添加到ArrayList。

for (Entity entity : entities) {
    entities.add(entity);
}

如果当前对象是Player或Slime,如何在循环遍历ArrayList时检查?

for (Entity entity : entities) {
    if (entity == Player) {
        System.out.println("Player class!");
    }
}

显然这不起作用,但我怎么能这样做?感谢您的帮助:))

3 个答案:

答案 0 :(得分:1)

使用检查对象类型的instanceof运算符。

for (Entity entity : entities) {
    if (entity instanceof Player) {
        System.out.println("Player class!");
    }
}

答案 1 :(得分:1)

您可以使用instanceof运算符来检查对象的类型。

示例

if(entity instanceof Slime)
{
    // Is a mob.
}

解释

有关instanceof工作原理的详细信息,请查看此link

答案 2 :(得分:1)

您可以执行类似

的操作
if(entity instanceof Player)
//do something