- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个包 > work 和 utils,我使用 utils 来处理我需要在工作中的类中执行的操作,工作的类和方法是我想要提供给运行此 jar 的用户的,但是我不希望他们访问 util 的类和方法。如果我将它们公开,用户将能够看到 util 中的所有方法,否则我将无法在“工作”中使用它们。如果我将它们放在一个包中,一个包中就会有太多类,所以如果有解决方法,请帮忙。我在这里也看到了类似的问题,但我没有找到任何答案,除了向客户记录这一点是我能找到的最好的答案。或者是否有人可以为此提出更好的设计。
最佳答案
Java 中有四个访问修饰符。明显的public
和private
,然后是protected
和package-private
。 protected 适用于同一包中的类和子类,而 package private(未显式声明修饰符)仅适用于包。所以 - 不,你不能仅使用访问修饰符来完成你所要求的事情。
这给你留下了几个选择。
A) 一旦我开始听到“实用程序类”,听起来好像您的 API 设计中可能存在问题,而不是实现中。公开类(class)有什么问题吗?听起来你正试图隐藏一些凌乱或令人困惑的设计。
B) 将“实用”函数捆绑到抽象基类中。这样,具体实例就可以继承功能,并利用protected
。
C) 让您的实用程序类通过具有包私有(private)构造函数的对象进行通信 - 并且在您的“工作”包中声明。这样,其他包就无法构造使用您的实用程序所需的对象。
D)使用反射调用实用程序类上的私有(private)方法(非常痛苦)。
到目前为止我的选择是A)。对于实用程序类来说,一个干净整洁的公共(public) API 绝对没有任何问题。 JDK 中有 10,000 个公共(public)类。听起来您似乎过于关注“如何”而不是“什么”?
关于java - java中有没有办法限制一个包对其他包的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33986506/
我想获得我拥有的每个数字变量的滚动平均值。使用 data.table 包,我知道如何计算单个变量。但是我应该如何修改代码以便它可以一次处理多个变量,而不是修改变量名称并多次重复此过程?谢谢。 假设我有
我已经探索 flutter web 一段时间了,一切都很好。 但是我在为 flutter_web 组件创建单元测试(例如 StatelessWidget 测试)时遇到问题。 我发现有一个名为 flut
我正在尝试在我的应用中实现 React Web Worker。 所以我做了一个研究,发现了这个包 https://www.npmjs.com/package/react-webworker . 我将得
我想知道是否有人可以帮助我理解为什么当我在 R 中输入脚本时会收到错误消息。为了了解一些背景信息,我正在研究6 个不同变量的效果(我我认为有 63 种组合或模型)(X) 在我的环境科学荣誉项目的不同空
我正在尝试安装继续集成服务器。该服务器将从 GIT 中提取数据并尝试构建应用程序。由于我使用的是 windows 2012 服务器,因此多个用户可以触发构建。为此,我想确保我以管理员身份安装的所有 N
我正在使用 rstac 访问所需边界框和日期范围内的 Sentinel-2 数据并计算 NDVI。当我使用 {terra} 包时,这对我来说相对[*]干净且直接,但我想使用 {stars} 语法(更多
我是一名优秀的程序员,十分优秀!