java中的复杂嵌套类

时间:2014-01-11 11:41:14

标签: java

我正在使用许多嵌套静态类测试程序。

public class Q 
{
    static class A {

        static class B{

            static class C{

                static class D{

                    static class E{

                    }
                }
            } 
        }
    }


    class C{

        class D{

            class F{

            }
        }

        static class E{
    }
}

}

但是在这里我不能再次声明静态类E.它显示错误“静态修饰符不允许在这里”。我怎么了? 不要喊我。我知道这是一个不好的做法。但我有好奇心知道原因。

2 个答案:

答案 0 :(得分:4)

您可以将所有代码简化为:

class C{

    static class E{
    }
}

所以问题就变成为什么不能在非静态内部类中创建静态内部类。

这在这里得到解答:

Why a non-static inner-class cannot have static members (fields and methods)?

  

非静态内部类的整个主体不在静态范围内,因此您不能拥有静态成员。

答案 1 :(得分:1)

  class C{

        class D{

            class F{

            }
        }

        static class E{
    }
}

如果仔细查看上面的嵌套内部类,就会尝试将静态嵌套类放在非静态内部类中,这在java中是不允许的。