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

标签 java class recursion nested instantiation

假设在外部类类中有一个嵌套类;该嵌套类能否在自身内部实例化外部类的实例?

如果外部类在自身内部实例化了一个内部类的实例,内部类又在内部类中实例化了外部类的实例,会不会导致无限递归?

最佳答案

如果您指的是下面的内容,那么是的,它导致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/

相关文章:

java - 公共(public)类扩展了 JPanel

internet-explorer - 模板递归错误

java - Java 接口(interface)应该只包含 getter 吗?

java - 从服务器获取文件内容,我应该发送内容还是文件对象本身?

java - 启动时控制台中的 Apache Tomcat 异常

c++ - 在 C++ 中什么时候应该使用类还是结构?

java - FilenameFilter 不过滤 zip 文件 - Java

html - !important 相当于 HTML 类标签?

java - 递归检查字符串是否平衡

python - 用空格分隔相邻相同字符的递归函数