這裏是我的問題: 我的功能在A級:如何使用通配符將泛型傳遞給函數而不用轉換?
public void setData(Map<String,? extends ArrayList<? extends SomeInterface>>){...}
我的電話:
Map<String, ArrayList<ImplementsSomeInterface>> a=...;
instanceOfA.setData(a); //does not compile
instanceOfA.setData((Map<String,? extends ArrayList<? extends SomeInterface>>) a); // works thanks to the Casting.
我不認爲這是乾淨的。有沒有一種方法可以避免在不丟棄通配符的情況下使用該函數?
是A類普通? A類聲明是什麼樣的? – claesv 2012-04-26 13:36:42
你的意思是什麼?運行時沒有ClassCastException?什麼是subClassOfSomeClass? – assylias 2012-04-26 13:36:45
如果'subClassOfSomeClass'不是任何東西的ArrayList,這個如何工作? – sinelaw 2012-04-26 13:37:28