code: public static <K extends Enum<K>, V> EnumHashBiMap<K, V> create(Map<K, ? extends V> map) {
      EnumHashBiMap<K, V> bimap = create(EnumBiMap.inferKeyType(map));
      bimap.putAll(map);
      return bimap;
    }
docs: Constructs a new bimap with the same mappings as the specified map. If the specified map is an
  {@code EnumHashBiMap} or an {@link EnumBiMap}, the new bimap has the same key type as the input
  bimap. Otherwise, the specified map must contain at least one mapping, in order to determine
  the key type.
  
  @param map the map whose mappings are to be placed in this map
  @throws IllegalArgumentException if map is not an {@code EnumBiMap} or an {@code EnumHashBiMap}
  instance and contains no mappings