【问题标题】:Raw type. References to generic types should be parameterized原始类型。对泛型类型的引用应该被参数化
【发布时间】:2013-06-01 21:10:51
【问题描述】:

我有一个 Cage 类:

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

我正在尝试在另一个类主方法中实例化 Cage 的对象:

private Cage cage5 = new Cage(5);

我收到错误:Cage 是原始类型。对泛型 Cage 的引用应该被参数化。我尝试了几个想法,但被这个棘手的语法卡住了:o(

【问题讨论】:

  • 请不要编辑您的问题以使答案无效。如果您有新问题,请打开一个新问题。由于您已删除原始问题并将其替换为新问题,因此我的回答不再有意义。我已经回滚了这个问题。
  • 对不起,我会开一个新问题。
  • 没问题,每个人都是新的一次。 :)

标签: java oop generics


【解决方案1】:

对于像我这样的其他 java 新手。

  • 代码如下所示:
public class ContinuousAddressBuilder<T> extends VariableLengthPacket {
  ...

  /* T=int/float/double */
  private ArrayList<T> informosomes;

  ...

  public ContinuousAddressBuilder builderCon(int con) {
    ...
  }
}
  • 解决方案:

在你的课后添加&lt;T&gt;

改变

public ContinuousAddressBuilder builderCon(int con)

public ContinuousAddressBuilder&lt;T&gt; builderCon(int con)

【讨论】:

    【解决方案2】:

    Cage&lt;T&gt;是泛型类型,所以需要指定类型参数,像这样(假设有class Dog extends Animal):

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

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

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

    【讨论】:

    • 谢谢 cdhowie。对不起,我尝试了几件不同的事情。我现在编辑了一个更顽固的错误。感谢您的意见!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    相关资源
    最近更新 更多