gpt4 book ai didi

java - 带引用类型的空白最终

转载 作者:行者123 更新时间:2023-11-29 07:07:05 24 4
gpt4 key购买 nike

为什么我们可以更改声明为 blank final 的 hashMap,但不能更改原始类型?例如如果我创建一个 map

final Map<String, String> someMap;

并在构造函数中初始化它,我仍然可以将值放入其中。但原始情况并非如此

final int a;

在这种情况下,我无法更改 a 的值。有人可以解释一下吗?

最佳答案

final 表示一旦初始化就不能更改。您只是声明变量而不是初始化它,因此它是允许的。

所以这样做是有效的

final Map<String, String> someMap;
someMap = new HashMap<String, String>();

但是,如果您尝试在初始化后为其分配另一个值,那么编译器应该会抛出一个错误,指出 final 变量已经初始化:

    final Map<String, String> someMap;
someMap = new HashMap<String, String>();
someMap = new TreeMap<String, String>(); //error here

注意:另外,在 hashmap 中放置/删除值不会更改最终变量的引用。

关于java - 带引用类型的空白最终,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18506317/

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