我正在寻找更好的方法来执行以下操作:
class Animal {}
class Dog extends Animal
class Cat extends Animal
class Rat extends Animal
class Bat extends Animal
.. 50 such animals
现在我有一个动物列表 - List<Animal>
.
我想做这样的事情:
for (Animal animal : animalList) {
if (animal instanceof (Dog or Cat or 1 of 10 such animals) ) {
//do something with animal.
}
}
如果动物除了执行 10 个实例检查之外,还有什么好方法来检查该动物是否是子列表的实例?
最佳答案
扩展 Rogue 的评论:
有动物方法来区分子类,例如
Animal.isMammal()
或Animal.hasFourLegs()
然后子类具有诸如 Dog.isMammal = true
的属性
或 Bat.hasFourLegs = false
关于java - 如何在 Java 中检查以下实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57666963/