Stackoverflow 是由简单的代码引起的
Stackoverflow being cause with simple code
我的代码非常简单,我正在尝试学习 java/android studio,我不明白为什么会出现 Whosebug:
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);
}
}
即使我没有进行递归调用,Whosebug 正在发生。
你的问题是:
private final Main[] Drinks={
new Main(name1),
new Main(name2),
new Main(name3)
};
您正在创建 Main
class,其中包含 Drinks
数组,其中包含 Main
的实例,每个实例都必须具有 Drinks
数组,并且等等。
我的代码非常简单,我正在尝试学习 java/android studio,我不明白为什么会出现 Whosebug:
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);
}
}
即使我没有进行递归调用,Whosebug 正在发生。
你的问题是:
private final Main[] Drinks={
new Main(name1),
new Main(name2),
new Main(name3)
};
您正在创建 Main
class,其中包含 Drinks
数组,其中包含 Main
的实例,每个实例都必须具有 Drinks
数组,并且等等。