Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 库类中的单例_Java_Jar_Singleton_Lib - Fatal编程技术网

Java 库类中的单例

Java 库类中的单例,java,jar,singleton,lib,Java,Jar,Singleton,Lib,我有一个罐子,里面有一个类。我将jar作为库添加到项目中。类是公共的,并且具有公共构造函数。必须确保在单个实例中初始化该类。如何在不更改jar文件的情况下执行此操作?如果jar类是公共构造函数的公共类,则无法阻止其他人创建新实例 您可以使用单例包装类使公共类不那么明显: public class MyClass extends JarClass { private static MyClass instance = new MyClass(); private MyClass

我有一个罐子,里面有一个类。我将jar作为库添加到项目中。类是公共的,并且具有公共构造函数。必须确保在单个实例中初始化该类。如何在不更改jar文件的情况下执行此操作?

如果jar类是公共构造函数的公共类,则无法阻止其他人创建新实例

您可以使用单例包装类使公共类不那么明显:

public class MyClass extends JarClass {

    private static MyClass instance = new MyClass();

    private MyClass(){ super(); }  // create instance of jar class

    public static MyClass getInstance(){
        return instance;
    }
}

一种方法是将构造函数设为私有,并使用公共工厂方法创建类的单个实例谢谢您的回答,但我认为我无法更改jar文件。UPD:我在问题中添加了这个信息