繁体   English   中英

原始类型。 对泛型类型的引用应该被参数化

[英]Raw type. References to generic types should be parameterized

我有一个笼子类:

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(

Cage<T>是泛型类型,所以你需要指定一个类型参数,像这样(假设有一个class Dog extends Animal ):

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

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

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

对于像我这样的其他 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM