在其中创建静态嵌套 class 的实例

Creating instances of static nested class within that

这与Declaring an instance of a class inside that class

有关

为什么静态内部 class 节点允许 class 中的 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];
  }
...
}

x = 新节点(); // 在包含 class 内很好,但在静态嵌套节点 class 内的 new Node[R] 不清楚。

private Node[] next = new Node[R];

声明并初始化字段 next,它是一个 数组引用 (您应该将 Node[] 读作“Node 数组”)。表达式 new Node[R] 不创建任何节点,它创建一个节点数组。所以没有递归。

如果您有一个字段,例如

private Node someNode = new Node();

那么你确实会有一个递归,因为每个节点都会创建另一个节点,这个节点会创建下一个节点,依此类推。