【问题标题】:Java - How to check if a abstract superclass is a particular subclass [duplicate]Java - 如何检查抽象超类是否是特定的子类[重复]
【发布时间】:2018-02-26 23:40:50
【问题描述】:

这个问题可能看起来微不足道,但我在任何地方都找不到解决方案!

我有一个抽象超类Vehicle,并且有4个子类扩展它,即CarBusLorryBicycle

我还有一个 ArrayList<Vehicle> V 包含许多 Vehicle 对象,但我们不知道是哪种类型的车辆。

现在我无法计算CarsArrayList V 的数量

int carCount = 0;
for (Vehicle ob: V){
    if (ob is a car) {
        carCount++;
        }
    }
return carCount;

想知道上面代码中if(ob is a car)里面的代码应该是什么。

谢谢!

【问题讨论】:

  • if(ob instanceof Car) ?

标签: java inheritance arraylist


【解决方案1】:

如果你使用java-8,你可以一行完成:

V.stream().filter(Car.class::isInstance).count();

【讨论】:

    【解决方案2】:

    你正在寻找

    if (ob instanceof Car) {
        carCount++;
    }
    

    在此处获取详细信息:Oracle: instanceof

    【讨论】:

      【解决方案3】:
      if(ob instanceof Car)
      

      请试试这个

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-23
        • 2019-12-03
        • 2018-09-03
        • 1970-01-01
        • 1970-01-01
        • 2015-08-03
        • 1970-01-01
        相关资源
        最近更新 更多