gpt4 book ai didi

java - 为什么扩展 hashmap 的 map 助手会有用?为什么不直接使用 hashmap 呢?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:46:26 25 4
gpt4 key购买 nike

在我最近工作的大型 java 代码库中,我看到以下代码:

public class MapHelper extends HashMap<String, Object>{

private static final long serialVersionUID = 1L;

public MapHelper() {
super();
}

public MapHelper(MapHelper mh) {
super(mh);
}

public MapHelper as_dict(String key) {
return (MapHelper)this.get(key);
}
}

我不确定这会有什么用。您是否有可以阐明上述 MapHelper 用途的示例?

最佳答案

类(class)确实现在看起来相对轻浮;然而:

  1. 它让他们引用 HashMap<String, Object>作为MapHelper它更短并保证一致性。另见 'Is there a Java equivalent or methodology for the typedef keyword in C++?' .

  2. as_dict是执行强制转换的实用方法。他们似乎对 map 包含的内容有先见之明。这比内联转换更安全,因为转换只定义在一个地方。更少的错误余地。

  3. 它允许他们稍后添加额外的功能,而无需更新整个代码库。

  4. 扩展 HashMap作为顶级类使泛型类型参数具体化,也就是说,它们在运行时通过反射可用。参见 this blog post by Neal Gafter更详细地解释了此功能。

所以实际上有很多小但合理的理由这样做。

Java API 中有一些这样的示例,例如:

关于java - 为什么扩展 hashmap 的 map 助手会有用?为什么不直接使用 hashmap 呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26790248/

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