Hashtable を Java で不変かつ読み取り専用にする

セキュリティ上の理由から、誤った変更を回避するためにアクセス権を変更する必要がある場合があります。そのため、Javaは、Hashtableに書き込みアクセスできないようにするメソッド、つまり、読み取り専用で変更できないHashtableを配置しました.

アクセス権を変更するには、Collectionsクラスのメソッドを呼び出すだけですjava.util.Collections.unmodifiableMap(マップマップ).

public static 地図unmodifiableMap(Map m): このメソッドは、編集できない不変のハッシュテーブル ビューを返します。

次の例は、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.UnsupportedOperationException
at java.util.Collections$UnmodifiableMap.put(不明なソース)
at HashTable.Unmodifiable_Hashtable.main(Unmodifiable_Hashtable.java:16)
参照:
java.util.Collections.unmodifiableMap() メソッド