你链接到的Sun页面在两者之间有一些关键区别:
嵌套类是其封闭类的成员。非静态嵌套类(内部类)可以访问封闭类的其他成员,即使它们被声明为私有的也是如此。静态嵌套类无权访问封闭类的其他成员。
…
注意:静态嵌套类与它的外部类(和其他类)的实例成员进行交互,就像其他任何顶级类一样。实际上,静态嵌套类在行为上是顶级类,为了包装方便,该顶级类已嵌套在另一个顶级类中。
不需要
linkedList.Entry是顶级类,因为它仅被使用
linkedList(有些其他接口也具有名为的静态嵌套类
Entry,例如
Map.Entry-相同的概念)。而且由于它不需要访问linkedList的成员,因此将它设为静态是有意义的-这是一种更为简洁的方法。
正如Jon Skeet所指出的那样,我认为如果你使用嵌套类是一个更好的主意,那就是从它的静态开始,然后根据你的使用情况确定它是否真的需要是非静态的。



