【发布时间】:2011-12-21 05:49:13
【问题描述】:
我们知道java中“final”关键字的用途。在将变量声明为 final 时,我们必须初始化变量。比如“final int a=10;” 我们不能改变“a”的值。但是,如果我们选择 HashTable,它甚至可以添加一些值,甚至将 HashTable 声明为 final。
示例::
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);
现在“新数据”已添加到哈希表中。 我的问题是为什么它允许添加甚至声明为 final ???
【问题讨论】:
-
请注意,如果地图的内容是可变的(例如
java.util.Date或java.awt.Point),那么它仍然是可变的。