Class LazyLoader<T>

java.lang.Object
org.miaixz.bus.core.lang.loader.LazyLoader<T>
Type Parameters:
T - 被加载对象类型
All Implemented Interfaces:
Serializable, Loader<T>
Direct Known Subclasses:
LazyFunLoader

public abstract class LazyLoader<T> extends Object implements Loader<T>, Serializable
懒加载加载器 在load方法被调用前,对象未被加载,直到被调用后才开始加载 此加载器常用于对象比较庞大而不一定被使用的情况,用于减少启动时资源占用问题 此加载器使用双重检查(Double-Check)方式检查对象是否被加载,避免多线程下重复加载或加载丢失问题
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    get()
    获取一个对象,第一次调用此方法时初始化对象然后返回,之后调用此方法直接返回原对象
    protected abstract T
    初始化被加载的对象 如果对象从未被加载过,调用此方法初始化加载对象,此方法只被调用一次

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • LazyLoader

      public LazyLoader()
  • Method Details

    • get

      public T get()
      获取一个对象,第一次调用此方法时初始化对象然后返回,之后调用此方法直接返回原对象
      Specified by:
      get in interface Loader<T>
      Returns:
      加载完毕的对象
    • init

      protected abstract T init()
      初始化被加载的对象 如果对象从未被加载过,调用此方法初始化加载对象,此方法只被调用一次
      Returns:
      被加载的对象