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

标签 java oop generics

我有一个 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(

最佳答案

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

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

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

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

关于java - 原始类型。对泛型类型的引用应该被参数化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16952283/

相关文章:

java - 如何避免在这个 Java bool 方法中检查井字棋游戏是否结束,而不是对每种可能的情况进行硬编码?

java - tomcat 中的关闭 Hook (必需)未运行

Java正则表达式: finding match errors

java - 从泛型类派生类型

generics - Swift - 无法将 BST 节点转换为通用节点

java - 如何在构建器模式中使用泛型

java - 从批处理 JCL 执行 java

sql - OO程序和SQL数据库

python - 多态性或继承或任何其他建议?

Python/tkinter : Change label twice with one command execution