gpt4 book ai didi

java - HashMap初始化

转载 作者:行者123 更新时间:2023-12-01 18:31:38 25 4
gpt4 key购买 nike

如果我写

HashMap<String, String> map = new HashMap();

相反
HashMap<String, String> map = new HashMap<>();

或者相反

HashMap<String, String> map = new HashMap<String, String>();

第一个会不安全吗?

最佳答案

第二个只是第三个选择的缩写。

如果您使用不同的构造函数,第一种方法可能会导致问题,因为它忽略泛型。

例如,编译以下内容:

Map<Integer, Integer> intMap = ...;
Map<String, String> strMap = new HashMap(intMap);

它甚至可以毫无错误地执行,因为运行时没有通用检查。但是,如果 intMap 包含数据,并且您从 strMap 访问它(例如,通过迭代键),您将收到运行时异常。

这样的错误很难跟踪,因为异常可能发生在远离违规行的地方。

因此,在您的特定情况下,它不会引起问题,但如果您养成这种习惯,您最终会遇到问题。此外,您将收到编译器警告,您必须抑制或忽略这些警告,这两件事都应该避免。

关于java - HashMap初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23913287/

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