Create ObjectCache

This commit is contained in:
Noel Németh 2022-06-18 23:57:23 +02:00
parent d2ccf827b0
commit c9b2c01e78

View File

@ -0,0 +1,28 @@
package net.minestom.server.utils;
import java.util.function.Supplier;
/**
* Used to cache objects
*
* @param <T> type of the object
*/
public final class ObjectCache<T> {
private final Supplier<T> supplier;
private T obj;
public ObjectCache(Supplier<T> supplier) {
this.supplier = supplier;
}
public void invalidate() {
obj = null;
}
public T get() {
if (obj == null) {
obj = supplier.get();
}
return obj;
}
}