假设我定义了一个类,该类具有与其自身相同类型的变量作为成员.
public class abc {
private abc p;
}
Run Code Online (Sandbox Code Playgroud)
这实际上是有效的,令我惊讶.
为什么我认为它不应该:创建一个实例abc,它包含一个类型的变量abc,其中包含一个类型的变量abc,其中包含一个类型的变量abc,其中.....
显然我错了,有人可以告诉我如何?
我的代码很简单,我正在尝试学习java / android studio,我不知道为什么我会得到一个stackoverflow:
public class Main {
private String main_name = "dummy_string";
private String name1 = "name1";
private String name2 = "name2";
private String name3 = "name3";
private final Main[] Drinks={
new Main(name1),
new Main(name2),
new Main(name3)
};
public Main(){}
private Main(String name_value){
this.main_name = name_value;
}
public void get_value(int index){
System.out.println(this.Drinks[index]);
}
public static void main(String[] args) {
Main main_obj = new Main();
main_obj.get_value(0);
main_obj.get_value(1);
main_obj.get_value(2);
}
}
Run Code Online (Sandbox Code Playgroud)
即使我没有进行任何递归调用,stackoverflow仍在发生。