gpt4 book ai didi

java - 如何判断泛型是否是 Java 中类的实例?

转载 作者:行者123 更新时间:2023-12-01 18:41:55 25 4
gpt4 key购买 nike

我定义了以下类/子类。

public class Vehicle
{
}

public class Car extends Vehicle
{
}

public class Aircraft extends Vehicle
{
}

现在,我正在尝试循环访问车辆记录列表,其中列表可以包含汽车和飞机。但是,我想知道这是否是飞机记录(而不是汽车记录)。编译器在检查实例上告诉我“错误:instanceof if(s instanceof Record ) 的非法泛型类型”。我缺少什么?原谅我,我已经很多年没有使用java了。

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

最佳答案

您无法执行此类检查,因为 type erasure :通用信息<Aircraft>将在运行时丢失。

但是你可以这样做:

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

关于java - 如何判断泛型是否是 Java 中类的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19642586/

25 4 0
文章推荐: java - java多线程回调
文章推荐: java - 在 java 中扩展 Vector 意味着什么?