我有一个包ts
,包含票务系统的接口。我也有hts
包,其中包含ts
. 我有TicketSystem.class
in ts
,并HTicketSystem.class
从hts
它扩展了第一个。HTicketSystem.class
是hts
包中唯一的公共类。中的所有其他类hts
都具有默认可见性。hts
包有很多文件,其中包括 java bean。我想将这些 bean 提取到 sub-package hts.beans
。显而易见的问题是可见性,因为根据JLS
:
7.1 包成员
...
包的分层命名结构旨在方便以常规方式组织相关包,但除了禁止包具有与顶级类型相同的简单名称的子包(第 7.6 节)外,其本身没有任何意义在该包中声明。一个名为oliver 的包与另一个名为oliver.twist 的包之间,或者名为evelyn.wood 和evelyn.waugh 的包之间没有特殊的访问关系。
1)如果我beanA.class
以默认可见性离开,hts
班级将看不到它。
2) 如果我更改beanA.class
为公共可见性,它将从外部可见。
非常感谢任何建议/最佳实践。