Cage<T>是通用类型,因此您需要指定一个类型参数,例如这样(假设有一个class Dog extends Animal):
private Cage<Dog> cage5 = new Cage<Dog>(5);
您可以使用任何扩展的类型Animal(甚至是Animal自身)。
如果省略type参数,那么在这种情况下最终得到的是Cage<Animal>。但是,即使这是您想要的,您仍应明确声明类型参数。
解决方法我有一个笼子课:
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(