假设在外部类类中有一个嵌套类;该嵌套类能否在自身内部实例化外部类的实例?
如果外部类在自身内部实例化了一个内部类的实例,内部类又在内部类中实例化了外部类的实例,会不会导致无限递归?
最佳答案
如果您指的是下面的内容,那么是的,它将导致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();
}
}
上面的打印:
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)
关于java - 嵌套类可以实例化外部类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10851822/