gpt4 book ai didi

java - 在java中创建Hashtable作为final

转载 作者:IT老高 更新时间:2023-10-28 20:52:24 25 4
gpt4 key购买 nike

我们知道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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com