公共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