Package org.miaixz.bus.core.lang.loader
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>
函数式懒加载加载器 传入用于生成对象的函数,在对象需要使用时调用生成对象,然后抛弃此生成对象的函数。 此加载器常用于对象比较庞大而不一定被使用的情况,用于减少启动时资源占用问题
继承自
LazyLoader,如何实现多线程安全,由LazyLoader完成。- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidifInitialized(Consumer<T> consumer) 如果已经初始化,就执行传入函数protected Tinit()初始化被加载的对象 如果对象从未被加载过,调用此方法初始化加载对象,此方法只被调用一次boolean是否已经初始化static <T> LazyFunLoader<T> 静态工厂方法,提供语义性与编码便利性Methods inherited from class org.miaixz.bus.core.lang.loader.LazyLoader
get
-
Constructor Details
-
LazyFunLoader
构造- Parameters:
supplier- 用于生成对象的函数
-
-
Method Details
-
on
静态工厂方法,提供语义性与编码便利性- Type Parameters:
T- 对象类型- Parameters:
supplier- 用于生成对象的函数- Returns:
- 函数式懒加载加载器对象
-
init
Description copied from class:LazyLoader初始化被加载的对象 如果对象从未被加载过,调用此方法初始化加载对象,此方法只被调用一次- Specified by:
initin classLazyLoader<T>- Returns:
- 被加载的对象
-
isInitialize
public boolean isInitialize()是否已经初始化- Returns:
- 是/否
-
ifInitialized
如果已经初始化,就执行传入函数- Parameters:
consumer- 待执行函数
-