2014-02-10 77 views
0

我想檢查Java中的一個子類的類型。這是我想達到的僞代碼:如何檢查子類的類型?

public class Brown { ... } 
class Poo extends Brown { ... } 
class Brownie extends Brown { ... } 
... 

ArrayList<Brown> brownThings = new ArrayList<Brown>(); 
... 

for (Brown i: brownThings) 
    // if i is a brownie eat 
    // else dispose of 
+3

like'instanceOf'? – csmckelvey

回答

4

可以使用的instanceof關鍵字

if (i instanceof Brownie) { 
    // do something 
    } 

恰好檢查實例類型。

+0

我認爲它想檢查它是否是布朗尼而不是普加。 – PhoneixS

+0

你不需要檢查,那麼在那個列表中的所有東西都是'Brownie':),因爲每個'Child'都是'Parent' –

+0

列表中的所有內容都是布朗布朗尼(布朗的一個子類) – PhoneixS

0
instanceof can handle that just fine. 
0

這應該這樣做:

for (Brown i: brownThings) { 
    if (i instanceof Brownie) { 
     //eat 
    } 
}