我正在尝试创建一个通用类型的数组。但是我遇到了错误:
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章中广泛讨论了这个问题及其相关问题。
Pair<String, String>[] pairs = new Pair[10];
@SuppressWarnings
注解。这个结构编译通过
import java.util.HashMap;
public class Test {
class Pair<K,V> extends HashMap<K,V> {
}
public static void main(String[] args) {
Pair<String, String>[] pairs = new Pair[10];
}
}
new
关键字。 - jmj