Сделать хеш-таблицу неизменяемой и доступной только для чтения в Java
Из соображений безопасности иногда необходимо изменить права доступа, чтобы избежать ошибочной модификации. Вот почему в Java есть метод, который делает нашу Hashtable недоступной для записи или, другими словами, Hashtable, которая не может быть изменена только для чтения.Чтобы изменить права доступа, достаточно вызвать метод класса Collections java.util.Collections.unmodifiableMap(Карта карты).
публичный статический < К,В> Карта< К,В> unmodifiableMap(Map extends K,? extends V> m): Этот метод возвращает неизменяемое представление Hashtable, которое не может быть отредактировано.
В следующем примере показано использование метода java.util.Collections.unmodifiableMap().
import java.util.Collections;После компиляции и выполнения приведенного выше кода будет получен следующий результат:
import java.util.Hashtable;
import java.util.Map;
public class Unmodifiable_Hashtable {
public static void main(String[] s) {
Hashtable hashtable = new Hashtable();
hashtable.put("1", "val1");
hashtable.put("2", "val2");
hashtable.put("3", "val3");
Map m = Collections.unmodifiableMap(hashtable);
m.put("4", "val4");
System.out.println(m);
}
}
Исключение в потоке "main" java.lang.UnsupportedOperationExceptionReferences:
at java.util.Collections$UnmodifiableMap.put(Unknown Source)
at HashTable.Unmodifiable_Hashtable.main(Unmodifiable_Hashtable.java:16)
java.util.Collections.unmodifiableMap() method