获取内部类来打印预期输出

时间:2018-04-28 11:15:04

标签: java

以下是给予分配的程序。请求您提供以下输出的帮助,以及#34;预期输出"。它在线程" main"中提供错误"异常。 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();
    }
}

2 个答案:

答案 0 :(得分:4)

您拨打new A(),拨打new B(),再次拨打new A(),再次拨打new B(),然后一直打开,直到您无法接听再创建新对象(因此StackOverflowError)。

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

答案 1 :(得分:0)

class A
{
    {
        new B();
    }

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

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

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

Anonymous块在任何构造函数之前执行   静态块在加载静态类之前执行