通配符背后的目的是什么,它们与泛型有什么不同?
直到几天前,我才听说过wildcars,在读了我老师的Java书之后,我仍然不确定它的用途以及为什么我需要使用它。
假设我有一个超级类和几个子类,如 ,, ,等...现在我需要有一个动物列表,我的第一个想法是这样的:Animal
Dog
Cat
Parrot
List<Animal> listAnimals
相反,我的同事们建议这样:
List<? extends Animal> listAnimals
为什么我应该使用通配符而不是简单的泛型?
假设我需要一个 get/set 方法,我应该使用前者还是后者?它们有何不同?