首页 > 解决方案 > 在另一个单例构造函数中获取单例实例

问题描述

在单例类的构造函数中调用单例实例有什么问题吗?

我有一个单例 A,在 A 的构造函数中,我调用单例 B.getInstance().otherMethod()。当我在其他类中调用 A.getInstance() 时,它给了我一个由 B.getInstance().otherMethod() 的“NullpointerException”引起的“ExceptionInInitializerError”。那么可能是什么问题呢?

编辑:

单身人士A

public class A{

   // SingletonHolder is a container class to hold singleton instance 
  private static final SingletonHolder<A> singletonA = new SingletonHodler<>(new A());

     private A(){

   // class B is also a singlton using SingletonHolder class
   Map map = B.getInstance().getMap();
  }
     public static A getInstance(){

  //.instance() is a method in SingletonHolder to return singleton instance
        return singletonA.instance();
    }
 }

当我在测试类中调用 A.getInstance() 时。我得到了上面提到的异常。

标签: javaconstructorstaticinitializationsingleton

解决方案


推荐阅读