可能重复:
Java:子包可见性?
这是问题Java 的延续:子包可见性?. 询问的原因是为了引起更广泛社区的关注。
问题odp.proj 和 odp.proj.subpackage 这两个包之间有什么关系吗?
有人试图在这里回答它,但未能描述它。
可能重复:
Java:子包可见性?
这是问题Java 的延续:子包可见性?. 询问的原因是为了引起更广泛社区的关注。
问题odp.proj 和 odp.proj.subpackage 这两个包之间有什么关系吗?
有人试图在这里回答它,但未能描述它。
odp.proj
不,odp.proj.subpackage
从 Java 语言的角度来看,两者之间没有关系。
对于代码,odp.proj.subpackage 将驻留在 odp.proj 的子目录中,并且一些工具和 IDE 可能会将它们组合在一个 UI 中,但是关于语言访问控制或其他语言功能没有关系。
Java 没有子包的概念,因此 odp.proj.subpackage 和 odp.proj 与任何其他不同命名的包一样彼此不同。
您正在寻找的确切功能不存在。
他们考虑为 Java 1.7 做这件事,但该案例处于休眠状态。
就实际情况而言,除了目录结构、关键字之类的东西odp.proj
之外,它们之间根本没有任何关系——除了该语句没有从中获取任何类odp.proj.subpackage
protected
import odp.proj.*;
odp.proj.subpackage
解决您想要的内容的一种方法是为您想要公开的内容发布 API 规范,并将其余部分保留为未记录或私人记录的内容。您甚至可以使用ProGuard之类的东西来混淆每个版本中的私有类。
Java 没有子包的概念。
除了组织之外,包使用和“包”(空白)修饰符定义方法/字段的可访问性protected
,它允许同类和同包访问。但是,这种同包访问也不包括子包类。
通常,如果包名称包含“内部”一词,则用户不应直接使用它,因为不能保证这些包将出现在未来的版本中。这只是一个命名约定,但仍然可以作为一种解决方法。