2013-04-12 3 views
1

У меня есть класс под названием «Entity», который распространяется на другие классы, такие как «Player» и «Slime». В другом классе под названием «Уровень» у меня есть ArrayList, называемые сущностями, теперь я добавляю эти отдельные классы в ArrayList.Как получить определенные классы детей из ArrayList?

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

Как проверить, в то время как цикл по ArrayList, если текущий объект является либо игрока или Слизь?

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

Очевидно, что это не сработает, но как я могу это сделать? Спасибо за любую помощь :)

ответ

1

Используйте оператора instanceof, который проверяет тип объекта.

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

Вы можете использовать оператор instanceof проверить тип объекта.

Пример

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

Объяснение

Для более полных подробностей о том, как instanceof работ, проверить это link

1

Вы можете сделать что-то вроде

if(entity instanceof Player) 
//do something 
Смежные вопросы