2013-02-03 32 views
0

我有以下幾點:如何將泛型用於變量?

public class Helper { 
    public void doSomething(List<? extends MyClass> p1, Collection<? extends MyClass> c1) { 
     final <? extends MyClass> var1 = p1.get(0); // what should be here for the type ? 
    } 
} 

我怎樣才能使這項工作?

謝謝。

+0

怎麼辦你假裝要做一個「實例」?<?擴展MyClass' ?.您可以將它作爲MyClass實例處理,也可以使用instanceof檢查它是否爲MyClass類的適當子類的實例。其他任何東西都沒有意義。 – ninjalj

+0

@ninjalj是的它有道理,我會在c1中插入var1。如果我不使用泛型,代碼將不會編譯。 –

回答

0

正如其他地方提到的,你可以簡單地輸入變量作爲MyClass的,或者你可以寫,參照你的代碼仿製t等這樣

public class Helper { 
    public <T extends MyClass> void doSomething(List<T> p1, Collection<T> c1) { 
     final T var1 = p1.get(0); 
    } 
} 
+0

僅當他打算要求「p1」和「c1」的類型參數相同時 – newacct

+0

這是我的需要。謝謝! –

3

下應該是正確的:

final MyClass var1 = p1.get(0); 
相關問題