我挣扎理解为什么下面的代码不工作:具有多个限制
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