我掙扎理解爲什麼下面的代碼不工作:具有多個限制
public <E extends Animal & IQuadruped> void testFunction()
{
List<E> list = new ArrayList<E>();
Dog var = new Dog();
list.add(var);
}
與狗爲以下幾點:
public class Dog extends Animal implements IQuadruped
{
}
而且我得到一個編譯錯誤上加:
The method add(E) in the type List<E> is not applicable for the arguments (Dog)
我只是想確保我的列表元素擴展/實現這兩個類,狗完全填充那些cond itions,爲什麼它不起作用?
謝謝
我可以調用'YourClass。 testFunction()',然後你的函數會創建一個'ArrayList '並添加一個Dog到它。 –
immibis
哈我現在看到的缺陷在邏輯,我修改它像然後: 'code' 公共空隙testFunction(E VAR) \t { \t \t 名單列表=新的ArrayList (); \t \t list.add(var); \t} 'code' 並把它稱爲: 'code' 狗VAR =新狗(); \t \t testFunction(var); 'code' 這樣做的效果更好,謝謝:) –
Th4n4to
如果另一方面你把元素作爲參數,就像這樣:'public void testFunction(E var)',它會工作。 –
biziclop