package vc.thinker.utils; import com.google.common.collect.Maps; import org.springframework.lang.Nullable; import java.util.Map; import java.util.function.Function; /** * 枚举解析器 * * @author HeTongHao * @since 2021/6/17 16:34 */ public class Resolve<T, K> { private final Map<K, T> keyValueMap = Maps.newHashMap(); /** * 构造 * * @param values 枚举数组 * @param resolveKey 根据那个字段解析 */ public Resolve(T[] values, Function<T, K> resolveKey) { for (T value : values) { keyValueMap.put(resolveKey.apply(value), value); } } @Nullable public T resolve(K key) { return keyValueMap.get(key); } }