0

次のクラス/サブクラスが定義されています。

public class Vehicle
{
}

public class Car extends Vehicle
{
}

public class Aircraft extends Vehicle
{
}

ここで、リストに車と航空機を含めることができる車両レコードのリストをループしようとしています。しかし、それが航空機の記録であるかどうか(車の記録ではない)を調べたいと思います。コンパイラは、check のインスタンスで「エラー: instanceof if(s instanceof Record<Aircraft>) のジェネリック型が不正です」と通知しています。私は何が欠けていますか?すみません、私は何年も Java を使っていません。

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

1 に答える 1

4

タイプ eraseのため、このタイプのチェックを行うことはできません: 一般的な情報<Aircraft>は実行時に失われます。

ただし、次のようなことができます。

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