? extends Animal用于当您试图说任何扩展 Animal 的类都可以作为输入时。例如,List<? extends Animal>。如果您想在编写代码时跟踪类中的对象类型,您将使用 E。您可能只需要通过对象的单一类型。public class Node<T, E extends Animal> { public T findByObj(E obj) { // return index in Integer }}在这种情况下,您将像这样实例化并使用它:Node<Integer, Person> node = new Node<Integer, Person>();node.findByObj(new Person());您可能期望从 Person 类中得到一些东西,但可以使用随机类。它保持类型安全并且行为是可预测的。