我正在尝试创建一个泛型数组。我收到错误:
Pair<String, String>[] pairs; // no error here
pairs = new Pair<String, String>[10]; // compile error here
void method (Pair<String, String>[] pairs) // no error here.
我很困惑。为什么会发生这种情况的任何线索。
最佳答案
这背后的原因是您不能创建泛型或参数化类型的数组,只能创建具体化类型(即可以在运行时推导的类型)。
虽然可以声明这样的数组类型作为变量或方法参数。这有点不合逻辑,但这就是 Java 现在的样子。
Java Generics and Collections在第 6 章中广泛处理这个问题和相关问题。
关于java - 泛型中的数组类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3853411/