JAVA: 如何比较列表中的 child class

JAVA: How to compare child class in a List

所以我创建了一个 parent class : Animals

public class Animals {

   private String type;

   public String getType(){
       return this.type;
   }
}

然后我创建了不同的 child class 像马、熊、狗等扩展动物。

然后我创建了一个 List 列表,其中可以包含 object,它们来自马 class、熊等

但我一直在努力创建一种方法,该方法可以告诉我我的列表是否包含任何熊(来自 Bear Class 的 object)。

我尝试了很多东西。

  1. horse.getClass() returns 没什么

  2. 如果我做一个

     Horse h = new Horse();
    

    System.out.print(h instanceof Bear);

---> returns 正确这是错误的。

  1. 与 equals 相同。
  2. 我还在每个 child class 中创建了一个字符串属性,这样我就可以比较字符串,但是 Java 不会以某种方式将它们读取为字符串。

我好迷茫

问题出在您的 if 语句上。

if(a instanceof Bear);
    return true;

你的 if 语句以分号结束,这意味着它是一个空语句,下一行 return true 总是被执行。删除 if 语句后的分号。

在此处阅读更多内容:Semicolon at end of 'if' statement