All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xdean.jex.extra.LazyValue Maven / Gradle / Ivy

The newest version!
package xdean.jex.extra;

import java.util.function.Supplier;

public class LazyValue {

  public static  LazyValue create(Supplier supplier) {
    return new LazyValue<>(supplier);
  }

  private Supplier creater;
  private boolean calculated = false;
  private T value = null;

  private LazyValue(Supplier supplier) {
    creater = supplier;
  }

  public T get() {
    if (calculated == false) {
      synchronized (this) {
        if (calculated == false) {
          value = creater.get();
          creater = null;
          calculated = true;
        }
      }
    }
    return value;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy