我有一个笼子课:

public class Cage<T extends Animal> {
// the construtor takes in an integer as an explicit parameter
...
}

我试图在另一个类main方法中实例化Cage对象:
private Cage cage5 = new Cage(5);

我收到错误:笼子是原始类型。泛型Cage的引用应参数化。我尝试了几个想法,但对这种棘手的语法感到困惑:o(

最佳答案

Cage<T>是泛型类型,因此您需要像这样指定类型参数(假设存在class Dog extends Animal):

private Cage<Dog> cage5 = new Cage<Dog>(5);

您可以使用任何扩展Animal(甚至是Animal本身)的类型。

如果省略了type参数,那么在这种情况下最终得到的实际上是Cage<Animal>。但是,即使这是您想要的,您仍然应该显式声明类型参数。

08-05 06:23