使用静态初始值设定项,然后将
Exceptionas
扔掉
ExceptionInInitializerError。单击链接以阅读Javadoc,您将看到它完全适合此特定功能要求:在
静态初始化 期间处理异常。实际上,单例仅仅是静态和延迟初始化的全局对象。
private static class SingletonObjectFactoryHolder{ private static final ObjectFactory INSTANCE; static { try { INSTANCE = new ObjectFactory(); } catch (Exception e) { throw new ExceptionInInitializerError(e); } }}
不需要双重检查的锁定习惯,这是一种反模式,在某些情况下甚至是不安全的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)