我有一个笼子课:
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>
。但是,即使这是您想要的,您仍然应该显式声明类型参数。