Why am I receiving a stack overflow?(为什么我收到堆栈溢出?)
本文介绍了为什么我收到堆栈溢出?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的第一个代码块是我的Item对象文件;第二个是Main Class。在代码运行之前没有任何问题,但是在我添加了一个读写文件之后,我的代码开始接收到堆栈流错误。只是正在调用其错误的代码段。
public class Item implements java.io.Serializable {
public static String name;
public static double price;
public static double amount;
public int max = 1;
SlayerProgram sp = new SlayerProgram();
ReadFile rf = new ReadFile();
public Item(String name, double price,double amount )
{
this.name = name;
this.price = price;
this.amount = amount;
}
public void ItemSet(String name, double price,double amount)
{
this.name = name;
this.price = price;
this.amount = amount
}
我的主类:
public class SlayerProgram {
//import file txts, and Item Class
static String name;
static double price;
static double amount;
Item item = new Item(name,price,amount);
ReadFile rf = new ReadFile();
static String fileNameText = "D:\Game\SlayerProgram\Name.txt";
static String filePriceInt = "D:\Game\SlayerProgram\Price.txt";
static String fileAmountInt ="D:\Game\SlayerProgram\Amount.txt";
//begin file Read
public void BeginText() throws IOException
{
TextFile();
}
public void Max()
{
item.Max();
}
//declare needed Data Types;
final int max = item.max;
ArrayList<String> Name = new ArrayList<>();
ArrayList<Double> Price = new ArrayList<>();
double size = Price.size();
ArrayList<Double> Amount = new ArrayList<>();
Exception in thread "main" java.lang.StackOverflowError
at slayerprogram.Item.<init>(Item.java:18)
at slayerprogram.SlayerProgram.<init>(SlayerProgram.java:25)
at slayerprogram.Item.<init>(Item.java:18)
at slayerprogram.SlayerProgram.<init>(SlayerProgram.java:25)
如何找到导致堆栈溢出的位置?
推荐答案
Item
创建SlayerProgram
:
SlayerProgram sp = new SlayerProgram();
和SlayerProgram
创建Item
Item item = new Item(name,price,amount);
因此在初始化时,您将无休止地创建这些对象
获取StackOverflow Error有类似的Baeldung example
这以StackOverflow Error结束,因为ClassOne的构造函数实例化ClassTwo,而ClassTwo的构造函数再次实例化ClassOne。
这篇关于为什么我收到堆栈溢出?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:为什么我收到堆栈溢出?
基础教程推荐
猜你喜欢
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 在螺旋中写一个字符串 2022-01-01