如何确定泛型是否是Java中类的实例?

如何确定泛型是否是Java中类的实例?,java,generics,Java,Generics,我定义了以下类/子类 public class Vehicle { } public class Car extends Vehicle { } public class Aircraft extends Vehicle { } 现在,我试图循环浏览一个车辆记录列表,其中可以包含汽车和飞机。但是,我想弄清楚这是否是飞机记录(而不是汽车记录)。编译器在check实例上告诉我“error:instanceof if(s instanceof Record)的泛型类型非法”。我错过了什么?请原谅

我定义了以下类/子类

public class Vehicle
{
}

public class Car extends Vehicle
{
}

public class Aircraft extends Vehicle
{
}
现在,我试图循环浏览一个车辆记录列表,其中可以包含汽车和飞机。但是,我想弄清楚这是否是飞机记录(而不是汽车记录)。编译器在check实例上告诉我“error:instanceof if(s instanceof Record)的泛型类型非法”。我错过了什么?请原谅,我已经好几年没有使用java了

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

for(Record您无法执行此类型的检查,因为:通用信息
将在运行时丢失

但是,您可以这样做:

if (s.getVehicle() instanceof Aircraft) { 
  ..
}

您无法执行此类型的检查,因为:通用信息
将在运行时丢失

但是,您可以这样做:

if (s.getVehicle() instanceof Aircraft) { 
  ..
}
记录是列表的定义,实际类型是@Nambari saidRecord所说的飞机类别,记录是列表的定义,实际类型是@Nambari所说的飞机类别