java问题中的通用数组

时间:2016-05-22 23:43:27

标签: java arrays generics inner-classes

我有这段代码并且它一直说它不能创建一个通用数组,但是,我的Node类中没有泛型,只是一个Object字段。 Node类是一个内部类。为什么要这样做?

public class TernarySearchTrie<E> implements TrieInterface<E> {

    private Node[] root = new Node[256];
    private int size = 0;

    private class Node {
        char c;
        Node left, mid, right;
        Object value;
    }
}

2 个答案:

答案 0 :(得分:4)

static修饰符添加到Node类:

private static class Node {
    char c;
    Node left, mid, right;
    Object value;
}

没有static,它取决于具有泛型的TernarySearchTrie类。

答案 1 :(得分:2)

您在有问题的AntiForgeryToken中所做的事实上是new Node[256]。一种解决方案是使用原始类型:

TernarySeachTrie<E>.Node[256]

当然,编译器会为此提供警告。