我有一个Cage类:
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是原始类型。应参数化对泛型类型Cage的引用。我尝试了几个想法,但我对这种棘手的语法感到困惑:o(
答案 0 :(得分:18)
Cage<T>
是泛型类型,因此您需要指定一个类型参数,如此(假设有一个class Dog extends Animal
):
private Cage<Dog> cage5 = new Cage<Dog>(5);
您可以使用任何扩展Animal
(甚至Animal
本身)的类型。
如果省略type参数,那么在这种情况下最终结果是Cage<Animal>
。但是,即使这是您想要的,您仍应明确声明类型参数。
答案 1 :(得分:0)
对于其他像我这样的Java新手。
public class ContinuousAddressBuilder<T> extends VariableLengthPacket {
...
/* T=int/float/double */
private ArrayList<T> informosomes;
...
public ContinuousAddressBuilder builderCon(int con) {
...
}
}
在课程之后添加<T>
:
更改自
public ContinuousAddressBuilder builderCon(int con)
到
public ContinuousAddressBuilder<T> builderCon(int con)