2013-10-28 87 views
0

我有以下定義的類/子類。如何找出泛型是否是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>) 
      { 
       ... 
      }      
     } 
+0

記錄是List的定義,實際類型是該機作爲@Nambari說,班上的類型 – avrono

回答

4

你不能做這種類型的,因爲type erasure檢查:通用信息<Aircraft>將在運行時丟失。

但是你可以做這樣的事情:

if (s.getVehicle() instanceof Aircraft) { 
    .. 
} 
相關問題