[英]Java nested package visibility
通常,当我设计项目的某些新组件时,我遇到了一个限制,即我无法找到正确的解决方法...
想象一下一个包“组件”,在这个组件包中,您有一些公共类/接口自然是设计用来公开共享的,还有一些内部包中需要的类/接口(ComponentSpecificStuff),但是这些类/接口在包外部是不可见的。 ..
现在,在当前的java可能性下,我实现此目标的唯一方法是违反(不在“组件”程序包之外公开Stuff”)。
您如何解决呢?
是的,您可以通过在包名称中使用internal关键字来做到一定程度。
示例您有一个包裹
com.myPackage.component
你可以有另一个包裹
com.myPackage.component.internal.blahblah
当您使用关键字internal时,它不会暴露在其他jar上,并且无法在jar外使用,但可以由另一个包在jar内使用。 在这里,内部包将com.myPackage.component
进一步扩展到层次结构中。 正如Jon Skeet所引用的Packages are not hierarchical as far as the compiler is concerned - the "hierarchy" is just human pattern matching for organization, effectively.
这就是我进一步扩展软件包的意思。
您可以通过不给类Example提供任何访问修饰符来定义一个私有的类包:
class PackagePrivateClass{
}
您可以在同一包中导入此类,但在包外部不允许使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.