mirror of
https://github.com/Minestom/Minestom.git
synced 2024-09-21 03:01:05 +02:00
Create ObjectCache
This commit is contained in:
parent
d2ccf827b0
commit
c9b2c01e78
28
src/main/java/net/minestom/server/utils/ObjectCache.java
Normal file
28
src/main/java/net/minestom/server/utils/ObjectCache.java
Normal 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;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user