java - 包装和可见性

标签 java package encapsulation access-modifiers class-visibility

我正在制作一个 SDK,我正在尝试将类分离到不同的包中,这些类使用其他一些共享类。问题是如果我将共享类(class)公开,每个人都可以看到它们,而不仅仅是我的类(class)。让它们只能由我的应用程序访问的正确方法是什么?

示例:


包一个 我的类(class)1

套餐b 我的类(class)2

套餐c 公共(public) MySharedClass


因为 c 是公共(public)的,MySharedClass 将能够访问它,但问题是它也将对世界可见,我该如何防止这种情况发生?

最佳答案

创建一个记录为内部包的包,不供客户使用。

在 Java 中没有办法让一个类只对某些包公开:它要么对每个人都是 public 要么是package-private(只在声明的包中公开).

我认为有一个关于模块的提案可以更好地控制类的可见性,但至少我们必须等待 Java 8。

关于java - 包装和可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8647565/

相关文章:

python - 面向初学者的关于 OSX 上的 Python 包管理的常识性建议

python - Visual Studio Code 无法识别我的 anaconda 包和模块

java - 通过访问器方法封装 java.util.Properties 访问被认为是不好的做法?

java - 如何使特定的 jTable boolean 列可编辑

java - Android 11 上的沉浸式全屏

Java - 在没有 POJO 的情况下递归地从 JSON 字符串中删除字段

c++ - 限制对特定类的方法调用

java - 在 JSF 中绘制图形(图表)

java - 如何在 Eclipse 中将 Lanterna 包导入到 Java

javascript - 对短语 "extend Object.prototype or one of the other build-in prototype"的混淆