code: @SuppressWarnings("unchecked")
  	public static <K, E extends Number> NumberMap<K, E> newNumberMap(Class<E> elementType) {
  		if (elementType == BigDecimal.class) return (NumberMap<K, E>) newBigDecimalMap();
  		if (elementType == BigInteger.class) return (NumberMap<K, E>) newBigIntegerMap();
  		if (elementType == Byte.class) return (NumberMap<K, E>) newByteMap();
  		if (elementType == Long.class) return (NumberMap<K, E>) newLongMap();
  		if (elementType == Double.class) return (NumberMap<K, E>) newDoubleMap();
  		if (elementType == Float.class) return (NumberMap<K, E>) newFloatMap();
  		if (elementType == Integer.class) return (NumberMap<K, E>) newIntegerMap();
  		if (elementType == Short.class) return (NumberMap<K, E>) newShortMap();
  		else throw new UnsupportedOperationException();
  	}
docs: Creates a NumberMap for instances of a concrete subclass of Number.
  
  @param <K> key type
  @param <E> element type
  @param elementType
  @return NumberMap&lt;K, E&gt;