Class LazyFunLoader<T>

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

public class LazyFunLoader<T> extends LazyLoader<T>
函数式懒加载加载器 传入用于生成对象的函数,在对象需要使用时调用生成对象,然后抛弃此生成对象的函数。 此加载器常用于对象比较庞大而不一定被使用的情况,用于减少启动时资源占用问题 继承自LazyLoader,如何实现多线程安全,由LazyLoader完成。
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • LazyFunLoader

      public LazyFunLoader(Supplier<T> supplier)
      构造
      Parameters:
      supplier - 用于生成对象的函数
  • Method Details

    • on

      public static <T> LazyFunLoader<T> on(Supplier<T> supplier)
      静态工厂方法,提供语义性与编码便利性
      Type Parameters:
      T - 对象类型
      Parameters:
      supplier - 用于生成对象的函数
      Returns:
      函数式懒加载加载器对象
    • init

      protected T init()
      Description copied from class: LazyLoader
      初始化被加载的对象 如果对象从未被加载过,调用此方法初始化加载对象,此方法只被调用一次
      Specified by:
      init in class LazyLoader<T>
      Returns:
      被加载的对象
    • isInitialize

      public boolean isInitialize()
      是否已经初始化
      Returns:
      是/否
    • ifInitialized

      public void ifInitialized(Consumer<T> consumer)
      如果已经初始化,就执行传入函数
      Parameters:
      consumer - 待执行函数