我已经阅读了所有关于静态内部类的文章,从中我明白了以下内容:
- 静态内部类的实例可以在之前不创建外部类的情况下创建。这是静态和非静态内部类之间的主要区别。
但是,这些文章都没有回答这个问题:
如果静态内部类的目的是可以在外部类不存在的情况下创建它,为什么你要有一个私有的静态内部类呢?
例如,Java的LinkedList实现包含了`private static class Node`。如果我们尝试实例化`LinkedList.Node`,它将不起作用,因为它是私有的。而且我也不明白为什么你想要创建一个没有LinkedList的Node,因为你只需要使用LinkedList的add()接口。所以这个内部类不能是非静态的吗?
对我来说,内部类的私有和静态似乎是矛盾的,如果你想同时拥有私有和静态,那就很奇怪了。所以,能否请有人解释一下我错过了什么?
谢谢!
- 静态内部类的实例可以在之前不创建外部类的情况下创建。这是静态和非静态内部类之间的主要区别。
但是,这些文章都没有回答这个问题:
如果静态内部类的目的是可以在外部类不存在的情况下创建它,为什么你要有一个私有的静态内部类呢?
例如,Java的LinkedList实现包含了`private static class Node`。如果我们尝试实例化`LinkedList.Node`,它将不起作用,因为它是私有的。而且我也不明白为什么你想要创建一个没有LinkedList的Node,因为你只需要使用LinkedList的add()接口。所以这个内部类不能是非静态的吗?
对我来说,内部类的私有和静态似乎是矛盾的,如果你想同时拥有私有和静态,那就很奇怪了。所以,能否请有人解释一下我错过了什么?
谢谢!