在 Java 中自我引用 Class

Self Referenced Class in Java

我知道在 c 中允许自引用结构,但不允许自包含结构。借用例子 here:

无效:

struct a
{
    int someVar;
    a bad;
};

有效:

struct a
{
    int someVar;
    a* good;
};

但在 Java 中以下 class 有效:

class Node {
    int val;
    Node next;
}

这看起来更像 c 中的无效示例。我的问题是:为什么这在 Java 是合法的?

我觉得这与在 Java 中您只能访问引用(如指针),而不能访问实际对象有关,但我仍然不完全理解这一点。而搜索“self-referential in Java”并没有给出很多相关信息。任何人都可以给一些提示吗?谢谢!

Java 向您隐藏了一些 C 没有的实现细节。

在 Java 中,class 的任何实例都是引用,即指向对象的指针,而无需显式使用指针。

在 C 中没有引用,只有值。因此,您需要显式使用指针值来保存对象的地址,以便从本质上引用它。