我们知道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 ???
最佳答案
因为 final 标记的是引用,而不是对象。您不能将该引用点指向不同的哈希表。但是您可以对该对象执行任何操作,包括添加和删除内容。
您的 int
示例是原始类型,而不是引用。 Final 意味着您不能更改变量的值。因此,使用 int
您不能更改变量的值,例如使 int
的值不同。使用对象引用,您无法更改引用的值,即它指向的对象。
关于java - 在java中创建Hashtable作为final,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7996499/