【问题标题】:Generic array in java issuejava问题中的通用数组
【发布时间】:2016-09-19 17:31:49
【问题描述】:

我有这段代码,它一直说它不能创建泛型数组,但是,我的 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;
    }
}

【问题讨论】:

  • Node 定义在哪里?
  • private TernarySearchTrie.Node[] root = new TernarySearchTrie.Node[256]; 有效

标签: java arrays generics inner-classes


【解决方案1】:

static 修饰符添加到 Node 类:

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

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

【讨论】:

    【解决方案2】:

    你在有问题的new Node[256] 中所做的实际上是TernarySeachTrie&lt;E&gt;.Node[256]。一种解决方案是使用原始类型:

    Node[] root = TernarySearchTrie.Node[256];
    

    当然,编译器会为此发出警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 2011-06-15
      • 2011-07-07
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多