This page让我对问题2d感到困惑。查看Java文档here,似乎静态嵌套类 javax.swing.Box.AccessibleBox受到保护,因此可以在子类或同一个包中访问它;而内部类 javax.swing.Box.Filler具有默认的访问修饰符 - 包受保护,对吗? - 所以它可以从同一个包中访问。但是,只需在默认的Eclipse项目中创建一个简单的类:
package sandbox;
import javax.swing.Box;
public class ExternalClass {
Box.Filler var1; // Fine?
Box.AccessibleBox var2; // Compile error - not visible???
}
为什么我可以访问Box.Filler;如果我可以访问它,那么为什么我不能访问Box.AccessibleBox,它受保护,应该比Box.Filler更明显,它是受包保护的?
答案 0 :(得分:1)
它是static
,但它不是protected
。 Javadocs省略了public
修饰符。如果查看源代码,Filler
的完整类声明是:
public static class Filler extends JComponent implements Accessible