我定义了以下类/子类。
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>)
{
...
}
}
答案 0 :(得分:4)
由于type erasure,您无法执行此类检查:通用信息<Aircraft>
将在运行时丢失。
但是你可以这样做:
if (s.getVehicle() instanceof Aircraft) {
..
}