0

我定义了以下类/子类。

public class Vehicle
{
}

public class Car extends Vehicle
{
}

public class Aircraft extends Vehicle
{
}

现在,我正在尝试遍历车辆记录列表,其中列表可以包含汽车和飞机。但是,我想弄清楚它是否是飞机记录(而不是汽车记录)。编译器在检查实例上告诉我“错误:instanceof if(s instanceof Record<Aircraft>) 的非法泛型类型”。我错过了什么?原谅我,我好几年没用过java了。

        for (Record<? extends Vehicle> s : rs.getResultReadOnly())
        {                    
            if(s instanceof Record<Aircraft>) 
            {
               ...
            }                    
        }
4

1 回答 1

4

由于类型擦除,您无法进行此类检查:通用信息<Aircraft>将在运行时丢失。

但是,您可以执行以下操作:

if (s.getVehicle() instanceof Aircraft) { 
  ..
}
于 2013-10-28T18:44:49.227 回答