公共javax.swing.Box.Filler从另一个包?

Java教程中的这个页面让我非常困惑问题2d。 查看这里的Java文档,看起来静态嵌套类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更可见?


它是static ,但它不受protected 。 Javadocs省略了public修饰符。 如果您查看源代码, Filler的完整类声明是:

public static class Filler extends JComponent implements Accessible
链接地址: http://www.djcxy.com/p/24049.html

上一篇: public javax.swing.Box.Filler from another package?

下一篇: private access modifier behavior in case of package collision