java - 构造函数有问题吗?

标签 java exception inheritance stack-overflow extend

我在构建类时遇到问题,

以下代码抛出异常

public class Agent extends Board{    
    private static boolean arrow;
    private static boolean backmove;
    private static boolean gotGold;

    private static int atlocationX;
    private static int atlocationY;
    private static int faceposition; 
    private static int pathcounter;

    public boolean temporaryGold;
    public boolean temporaryWumpus;
    public boolean temporaryStench;
    public boolean temporaryBreeze;
    public boolean temporaryPit;

    int agentgui = 0;
    int label = 0;

    Block blockstorage[][] = new Block[4][4];
    KnowledgeBase kb = new KnowledgeBase();

    public Agent() {
        super();
    }

    public void Agent(){
        Agent.arrow = true;
        Agent.faceposition = 2;
        Agent.atlocationX = 0;
        Agent.atlocationY = 0;
        Agent.backmove = false;
        Agent.gotGold = false;
        Agent.pathcounter = 1;
    }
}

问题是,当我尝试添加
Agent agent = new Agent();

在我的其他一些类(class)中,例如:
public class Board {
    Agent agent = new Agent();
}

它返回一个错误:

Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError



我也尝试过,但还是一样。

是什么导致了这个异常?

最佳答案

您有一个带有间接递归调用的无限循环。

构建 Board对象需要 Agent对象,反之亦然

关于java - 构造函数有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12179051/

相关文章:

java - Hibernate + 支持 SQLite Pragmas 在 Windows 7 机器上提高速度

Python stderr - 无法解析异常消息

PHPUnit 弃用警告未通过测试

c++ - 如何将抽象信号连接到接口(interface)构造函数中的插槽?

java - 扫描代码库以使用已弃用的方法

java - 在 JADEX 2.4 上交换消息

java - 使用方法重载处理违反 'Liskov substitution principle' 的类

ruby-on-rails - css 属性在 Rails 应用程序中继承

java - 使用 Spring Boot 的角色层次结构和 OAuth2 安全性

c# - 让异常冒泡