2016-01-26 67 views

回答

10

所不同的是,其中在List类型参数将通过该方法所接受。

在第一方法中,T可以是Animal或任何亚类,所以addAll将接受List<Animal>,一个List<Dog>List<Cat>。请注意,当你不需要在方法体的Animal确切类型此签名相当于

public void addAll(List<? extends Animal> animals) 

在第二种方法中,您已指定类型参数必须是Animal。 Java的泛型是不变的,所以不会允许Animal的子类型。此方法将接受List<Animal>,但不接受List<Dog>List<Cat>

+0

感谢您的答复,我在我的脑海里也有类似的答案,并且需要确保它是正确的。 – secret

0

简单的说'T'是一个对象类型。所以榜“T”型可以接受任何类型的对象,而类动物的名单将只动物类型的元素,而不是任何其他对象。

这是一个使用泛型的优势。

相关问题