package thyyxxk.webserver.utils; import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.function.Function; /** * @author Administrator */ public class CacheOnce { private final Map map = new HashMap<>(); @SuppressWarnings("unchecked") T get(String name) { if (map.containsKey(name)) { return (T) map.get(name); } return null; } @SuppressWarnings("unchecked") T get(String name, Function filter) { Objects.requireNonNull(filter); if (map.containsKey(name)) { return (T) map.get(name); } Object object = filter.apply(name); if (object == null) { return null; } else { map.put(name, object); return (T) (object); } } }