嵌套类可以实例化外部类吗?

Nat*_*ate 1 java recursion nested class instantiation

假设外部类中有一个嵌套类; 这个嵌套类可以在其自身内实例化外部类的实例吗?

如果外部类在其自身内实例化一个内部类的实例,而该实例又在内部类中实例化外部类的实例,这是否会导致无限递归?

ada*_*shr 12

如果你的意思如下,那么是的,它导致a StackOverflowError.

public class Outer {

    public Outer() {
        Inner inner = new Inner();
    }

    private class Inner {
        public Inner() {
            Outer outer = new Outer();
        }
    }

    public static void main(String[] args) {
        Outer outer = new Outer();
    }
}
Run Code Online (Sandbox Code Playgroud)

以上打印:

Exception in thread "main" java.lang.StackOverflowError
    at com.adarshr.Outer.<init>(Outer.java:6)
    at com.adarshr.Outer$Inner.<init>(Outer.java:12)
    at com.adarshr.Outer.<init>(Outer.java:7)
    at com.adarshr.Outer$Inner.<init>(Outer.java:12)
    at com.adarshr.Outer.<init>(Outer.java:7)
    at com.adarshr.Outer$Inner.<init>(Outer.java:12)
Run Code Online (Sandbox Code Playgroud)