java - 如果我不想实例化一个类,我有什么选择?

标签 java instantiation

我有一个包含所有静态方法的类,基本上可以像 ClassName#MethodName() 那样进行调用。

我希望此类始终不可实例化,因此我已将构造函数可见性设置为 private。这当然可以避免从类外部创建它的任何实例。 我想知道是否有任何我不知道的技术术语或专门设计用于执行此操作的任何设计模式。

此外,这不会阻止我或任何其他开发人员从同一类中实例化它。我想知道是否有可能阻止这样做但保持相同的类行为。另外,如果有的话,还有哪些其他选择?

最佳答案

我只是使用了一个enum类是final,它的构造函数是private,即使通过反射也不能实例化。

public enum Utility {;
    public static void staticMethod() {
        // do something
    }
}

使用 enum 允许您定义一个类的所有可能实例,因此您已经定义了不可能有任何实例。

关于java - 如果我不想实例化一个类,我有什么选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20859137/

相关文章:

android - 罕见的Android无法实例化应用异常

java - 如何实例化 Anylogic block /对象 (INode)

java - 使用java.time.Instant来表示DateTime而不是OffsetDateTime

java - 在 MacOS 中使用 Java 程序执行 mysqldump

java - 在java中转换非结构化对象

java - 需要包含 X.Y.Z 的封闭实例

java - 在 BroadcastReceiver 上使用 newInstance 时出现 InstantiationException

java - 集群环境下的hibernate一级缓存

java - 什么是普通 JavaBeans 和普通 Java 类?

python - python中的类实例化和 'self'