【发布时间】:2011-07-10 18:10:41
【问题描述】:
我正在使用 Java ME 开发一个应用程序,我想将其作为库提供。有没有办法隐藏我不希望每个人都使用的类,但对于图书馆的工作来说仍然是必不可少的?
更新: 我知道我可以省略公共说明符,但是如何在开发时构建库本身而不创建不同的包?我喜欢将不同的包简单地视为不同的文件夹,这使我能够以一种好的方式构造代码。但是,在某些情况下,我可能需要访问其他包中的类,所以这相当棘手。包真正代表什么?一种想法可能是创建“接口”,但必须将它们声明为 public,这意味着外国人也可能实现仅用于库内某些进程的接口,对吗?
【问题讨论】:
-
使类最终化只会禁止子类化它。它仍然会暴露。
-
取决于您所说的“想要”是什么意思以及您想要解决多少麻烦。例如,访问修饰符很容易通过反射来解决。
-
是的,但是当我在 Eclipse 中包含我的 API 的 jar 文件时,如果我展开 jar 文件的内容,所有类都会显示出来。因此,我想将它们宣布为最终解决方案的一部分,以真正防止任何人使用它们。但是如果我有一个 API,也许我也想在 API 中包含不同的包。但是在没有 public 修饰符的情况下声明它们意味着我无法访问我想要的 API 的不同部分。创建不同包的“正常”原因是什么?我的意思是,我可以将所有代码放在同一个包中,但库的结构不会很结构化......