假设我定义了一个类,该类具有与自己相同类型的变量作为成员。
public class Abc {
private Abc p;
}
这实际上有效,令我惊讶的是。
为什么我不应该这样:创建一个
Abc
实例,它包含一个Abc
类型的变量,其中包含一个Abc
类型的变量,其中包含一个Abc
类型的变量,这...显然我错了,有人可以启发我吗?
最佳答案
您仅声明变量而不创建它。尝试在声明或构造函数中创建它,让我知道会发生什么:
public class Abc {
private Abc p = new Abc(); // have fun!
public static void main(String[] args) {
new Abc();
}
}
顺便说一句,如果您不是在类中创建它,而是在getter方法或构造函数参数中接受对它的引用,则您的代码将正常工作。这就是某些链接列表的工作方式。