java中的复杂嵌套类
我正在用一些嵌套的静态类测试这个程序java中的复杂嵌套类,java,Java,我正在用一些嵌套的静态类测试这个程序 public class Q { static class A { static class B{ static class C{ static class D{ static class E{ } } } }
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,这显示了错误“这里不允许静态修饰符”。我怎么了?
别喊我。我知道这是一种不好的做法,但我有好奇心想知道原因 您可以将所有代码简化为:
class C{
static class E{
}
}
所以问题变成了为什么不能在非静态内部类中创建静态内部类
答案如下:
非静态内部类的整个主体不在静态范围内,因此不能在其中包含静态成员
您可以将所有代码简化为:
class C{
static class E{
}
}
所以问题变成了为什么不能在非静态内部类中创建静态内部类
答案如下:
非静态内部类的整个主体不在静态范围内,因此不能在其中包含静态成员
如果仔细查看上面的嵌套内部类,您将尝试将静态嵌套类放在非静态内部类中,这在java中是不允许的
如果您仔细查看上面的嵌套内部类,您正试图将静态嵌套类放在非静态内部类中,这在java中是不允许的。读这样的代码太烦人了。您到底为什么要尝试这样可怕的事情呢?这太可怕了@user3007882。看起来像梯子。你想用这个做什么?别喊我。我知道这是一种不好的做法。但我很好奇,想知道原因。这并没有让我恼火:这是一个典型的Oracle考试认证问题。阅读这样的代码真让人恼火。你到底为什么要尝试这样可怕的事?这太可怕了@user3007882。看起来像梯子。你想用这个做什么?别喊我。我知道这是一种不好的做法。但我很好奇,想知道原因。这并没有让我烦恼:这是一个典型的Oracle考试认证问题