[英]How do I find out if generic is instanceof a class in Java?
我定义了以下类/子类。
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>)
{
...
}
}
由于类型擦除,您无法进行这种类型的检查:常规信息<Aircraft>
将在运行时丢失。
但是,您可以执行以下操作:
if (s.getVehicle() instanceof Aircraft) {
..
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.