java - 如何在 Java 中检查以下实例?

标签 java android

我正在寻找更好的方法来执行以下操作:

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/

相关文章:

Android ListView 中的 EditText

java - 在android中调用现有的 Realm 数据库?

android - 程序类型已经存在 : com. android.internal.http.multipart.ByteArrayPartSource

java - 如何从Android应用程序代号one中删除工具栏(使其全屏显示)

java - 如何与谷歌日历集成?

android - 如何在android中将图标转换为位图?

android - Android编程中空值逻辑: Confused

java - TX行锁争用: Inserting Duplicate values for Unique Key

java - CardView cardElevation 在 CardView 内部绘制随机方 block

java - 何时使用 Android 的 ArrayMap 而不是 HashMap?