我认为Java团队搞砸了这一名称。静态内部类(严格来说,它们的正确名称是“静态嵌套类”)与普通类没有什么不同,除了它具有特殊的名称(
Something.MyClass而不是
MyClass)并且可以设为私有(即,不能从其他类实例化)。
在情况下
Map,之所以选择它是因为
Map.Entry它的名字清楚地指出了与之
Entry相关的含义
Map。正如您所建议的,为此使用一个普通的类是完全合理的。唯一的区别是你不会写东西
Map.Entry。
我认为他们应该做的是
class对静态嵌套类使用“非静态”内部类的语法(即仅在封闭类中),而是发明一个新的关键字来创建“非静态”内部类,因为这些行为与普通课程有所不同。也许像
attachedclass。AFAIK
static选择该关键字是为了避免保留关键字过多,但我认为这只会引起混淆。



