我正在使用java开发SDK,我的问题是隐藏某些java类/包,因此没有第三方应用程序使用这个sdk暴露给这些下划线类
我知道如果sdk中的所有类对象都在一个包内,我可以将默认/受保护的访问修饰符分配给我想要隐藏的类.但是,像许多java项目一样,像我的sdk这样的java项目由不同的包组成,它们适当地对relivant java类进行分组.
这意味着如果我想隐藏/保护com.abc中的类,那么位于com.a中的世界可见的主根类将无法访问com.abc中受保护的类等
我如何为此提供解决方案,而不是仅仅将所有类转储到一个大型包中?
谢谢.
Java 命名空间和访问修饰符不是分层的,即使看起来是由文件夹组成的命名空间结构。Java确实有一个带有任意完整限定名称(点表示法)的平面命名空间。
所以如果你想关闭你的库类并同时在库中使用它,没有其他方法可以将它们放在同一个包中。也许最好解释一下:当您使用包外部的类时,该类就成为 API 的一部分,因为 Java 中的每个包都是一个模块。
| 归档时间: |
|
| 查看次数: |
1236 次 |
| 最近记录: |