Class LazyValue<T>

java.lang.Object
top.magstar.framework.LazyValue<T>
Type Parameters:
T - 值类型

public class LazyValue<T> extends Object
懒加载工具类,提供线程安全的延迟初始化。

基本用法


 public class Example {
     private final LazyValue<ExpensiveObject> expensiveObject =
         LazyValue.of(() -> new ExpensiveObject());

     public ExpensiveObject getExpensiveObject() {
         return expensiveObject.get();
     }
 }
 

线程安全模式


 // 线程安全(默认)
 LazyValue<String> safe = LazyValue.of(() -> "value");

 // 非线程安全(性能更好,但不适合多线程环境)
 LazyValue<String> unsafe = LazyValue.unsafe(() -> "value");
 
Since:
1.0.0
Version:
1.0.0
Author:
Berry_so
  • Method Details

    • of

      public static <T> LazyValue<T> of(Supplier<T> supplier)
      创建线程安全的懒加载值
      Type Parameters:
      T - 值类型
      Parameters:
      supplier - 值的提供者函数
      Returns:
      懒加载值实例
    • unsafe

      public static <T> LazyValue<T> unsafe(Supplier<T> supplier)
      创建非线程安全的懒加载值(性能更好)
      Type Parameters:
      T - 值类型
      Parameters:
      supplier - 值的提供者函数
      Returns:
      懒加载值实例
    • get

      public T get()
      获取值,首次调用时初始化
      Returns:
      懒加载的值
    • isInitialized

      public boolean isInitialized()
      检查是否已经初始化
      Returns:
      true表示已初始化,false表示未初始化
    • reset

      public void reset(Supplier<T> newSupplier)
      重置为未初始化状态(需要提供新的supplier)
      Parameters:
      newSupplier - 新的值提供者函数
    • getOrNull

      public T getOrNull()
      如果已初始化,返回值;否则返回null
      Returns:
      已初始化的值,或null
    • toString

      public String toString()
      Overrides:
      toString in class Object