Java有任何Subpackage的概念吗?

时间:2012-11-20 21:05:58

标签: java package

  

可能重复:
  Java: Subpackage visiblity?

这是问题Java: Subpackage visiblity?的延续。提出要求的原因是引起更广泛社区的注意。

问题两个软件包之间是否有任何关系:odp.proj和odp.proj.subpackage?

有人试图回答here,但未能描述它。

4 个答案:

答案 0 :(得分:4)

不,从Java语言的角度来看,odp.projodp.proj.subpackage之间没有任何关系。

对于代码,odp.proj.subpackage将驻留在odp.proj的子目录中,并且某些工具和IDE可能会在UI中将它们组合在一起,但是对于语言访问控制或其他语言功能,没有任何关系。< / p>

Java没有子包的概念,因此odp.proj.subpackage和odp.proj与其他任何不同命名的包都不同。

答案 1 :(得分:3)

简短回答

您正在寻找的确切功能不存在。

长答案

They considered doing it for Java 1.7, but the case is dormant.

就实际情况而言,odp.projodp.proj.subpackage之间除了目录结构,protected关键字和import odp.proj.*;之类的内容之外没有任何关系 - 除了该语句没有从odp.proj.subpackage

获得任何类

接近您想要的方法的一种方法是为您想要公开的内容发布API规范,并将其余内容留给未记录或私下记录。可能你甚至可以使用像ProGuard这样的东西来混淆每个版本中的私有类。

答案 2 :(得分:2)

Java没有子包的概念。

除了组织之外,包使用protected和“包”(空白)修饰符定义方法/字段的可访问性,这允许相同类和相同包访问。但是,此同包访问也不包括子包类。

答案 3 :(得分:0)

通常,如果包名称包含“内部”单词,则用户不应直接使用它,因为它不受保证,这些包将在未来的版本中出现。这只是一个命名约定,但仍然可以作为一种解决方法。