java - 为什么在构造函数中调用此函数会产生 stackoverflow 错误?
问题描述
嗨,我有一个Person
类,它有一个fatherComesFirst
实例化Person father
. 但是,当我在构造函数中调用此方法时,为什么会jvm
抛出stackoverflow
错误?我是初学者。虽然我相信到目前为止我是正确的。
我的代码。
package intermediate;
public class Person {
//getters & setters
private String firstName;
private String lastName;
public Person(String firstName, String lastName){
this.firstName = firstName;
this.lastName = lastName;
fatherComesFirst("",lastName);
}
public void fatherComesFirst(String firstName, String lastName){
Person father = new Person(firstName,lastName);
System.out.println(father.getFirstName()+" "+father.getLastName());
}
}
解决方案
因为每当您创建Person()
该类的实例时,它都会调用该函数fatherComesFirst()
,该函数在该函数的第一行创建同一类的另一个实例。这是一个无限循环。
推荐阅读
- r - R Shiny GoogleSheets4:部署时 Shinyio 服务器中的身份验证错误?
- string - 如何编写不需要引号的bash函数?
- office-js - Excel JS 加载项:将非敏感数据存储在隐藏的工作表与工作簿设置中
- azure - 找不到 Azure 数据工厂
- javascript - 如何在 python 模板中使用我的“SearchDate”替换 type = date Valuse,
- python - 用今天和 10 个时期后每个细分市场中的客户数量初始化一个矩阵 - R 到 Python
- java - 找到最大匹配 3 个三角形数
- php - 将网站访问者重定向到 Nginx 中的 Bowser 语言(url 重写)
- android - Flutter:添加网址后如何显示加载屏幕?
- antlr4 - ANTLR4:遵循什么设计模式?