Java lazy loading tool class
com.google.common.base.Suppliers.memoize(Supplier<T>)
com.google.common.base.Suppliers.memoizeWithExpiration(Supplier<T>, long, TimeUnit)
package tool; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; public class RawTest { public static void main(String[] args) throws Exception { Supplier<String> supplier = Suppliers.memoize(() -> supply()); System.out.println(supplier.get()); System.out.println(supplier.get()); System.out.println(supplier.get()); } public static String supply() { System.out.println("called supply"); return "Hello World"; } }
result
wrote
called supply
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World