Como sabemos el propósito de la palabra clave "final" en java. Mientras declaramos una variable como final, tenemos que inicializar la variable. como "final int a = 10;" No podemos cambiar el valor de "a". Pero si optamos por HashTable, es posible agregar algún valor, incluso declarando HashTable como final.Crear Hashtable como final en java
Ejemplo ::
private static final Hashtable<String,Integer> MYHASH = new Hashtable<String,Integer>()
{{ put("foo", 1);
put("bar", 256);
put("data", 3);
put("moredata", 27);
put("hello", 32);
put("world", 65536); }};
Ahora estoy declarando la MYHASH HashTable como definitiva. Si trato de agregar algunos elementos más a esto, es aceptable.
MYHASH.put("NEW DATA", 256);
Ahora se agrega "NEW DATA" a la HashTable. Mi pregunta es ¿Por qué está permitiendo agregar incluso su declaración como final ????
Nota si el contenido del mapa eran mutables ('' java.util.Date' o java.awt.Point', por ejemplo) entonces sigue siendo mutables. –