Java Autoboxing permite crear mapas en Long, Integer, Double
y luego operarlos utilizando valores primitivos. Por ejemplo:
java.util.HashMap<String, Integer> map = new java.util.HashMap<String, Integer>();
map.put("one", 1); // 1 is an integer, not an instance of Integer
Si desea almacenar en un mapa diferentes tipos primitivos, que pueda para que haciendo una Map<String, Number>
. Permite almacenar los valores de BigDecimal
, BigInteger
, Byte
, Double
, Float
, Integer
, Long
, Short
(y AtomicLong
, AtomicInteger
).
Aquí se muestra un ejemplo:
Map<String, Number> map = new HashMap<String, Number>();
map.put("one", 1);
map.put("two", 2.0);
map.put("three", 1L);
for(String k:map.keySet()) {
Number v = map.get(k);
System.err.println(v + " is instance of " + v.getClass().getName() + ": " + v);
}
Fue mi culpa por no estar clara. Lo que digo Quiero restringir el valor a ser un tipo primitivo, quiero decir que quiero permitir que cualquiera de los tipos primitivos se use como un valor en ese mapa específico. – Prospero