Как мы знаем цель «окончательного» ключевого слова в Java. Объявляя переменную как final, мы должны инициализировать переменную. как " final int a = 10;"
Мы не можем изменить значение «а». Но если мы перейдем к HashTable, можно добавить некоторое значение, даже объявив HashTable как окончательное.
Пример ::
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); }};
Теперь я объявляю MYHASH HashTable финальным. Если я попытаюсь добавить к этому еще несколько элементов, он будет принят.
MYHASH.put("NEW DATA", 256);
Теперь «НОВЫЕ ДАННЫЕ» добавляются в HashTable.
Мои вопросы: почему его разрешают добавить даже объявление в качестве окончательного ????