1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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<T> {
- private final Map<String, Object> 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<String, Object> 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);
- }
- }
- }
|