我试图将类构造函数隐藏在包范围之外(以及其他一些 setter ),并强制潜在的包用户仅通过其构建器获取此特定类(出于清晰和验证原因)。
到目前为止,我已经通过将该类及其构建器放入同一个包并声明我想要隐藏的所有方法的包可见性来实现此目标。然而,这有一些缺点。它施加了更严格的包结构,并限制了用户扩展类构建器的可能性。
我对任何替代解决方案或模式感到好奇?不久前我听说过关于在 Java 中引入“模块”可见性修饰符的谣言(我认为这可以解决问题),但我猜他们放弃了这个想法。
最佳答案
- 使用 protected
access-modifier 来限制对该包外部的构造函数代码的访问。
例如:
public class FilePro {
protected FilePro(){ // This block is accessible only
// within this package
}
}
关于java - 将构造函数隐藏在包之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13529411/