我有一份trie的示例代码。代码似乎没有编译错误。为什么要使用静态嵌套类node?当我删除Node嵌套类中的static
并编译时,会出现错误在
。到底发生了什么?private Node[] next = new Node[R];
中创建泛型数组
public class TrieST<Value> {
private static final int R = 256; // extended ASCII
private Node root; // root of trie
private int N; // number of keys in trie
// R-way trie node
private static class Node {
private Object val;
private Node[] next = new Node[R];
}
public TrieST() {
}
}
new ArrayList<String>[5];
会产生错误。 - user253751Node[] next = new Node[R]
数组。而使用非静态内部类,则会创建一个与外部类实例相关联的具有泛型类型的 Node。而创建泛型数组是被禁止的。 - Nir Alfasi