首页 > 解决方案 > 让内部类打印预期输出

问题描述

下面是一个分配的程序。请求您帮助以下输出获得“预期输出”。它提供错误为“线程“主”java.lang.StackOverflowError中的异常”。

class A
{
    {
        new B();
    }

    static class B
    {
        {
            new A().new C();
        }
    }

    class C
    {
        {
            System.out.println("Expected output");
        }
    }
}

public class MainClass
{
    public static void main(String[] args)
    {
        new A();
    }
}

标签: java

解决方案


您调用new A(),调用new B(),再调用 ,new A()再调用new B(),它会一直持续下去,直到您无法再创建新对象(因此StackOverflowError)。

您应该在某个时候停止创建 A() 或 B()


推荐阅读