use*_*087 3 java design-patterns concurrenthashmap
在我最近的工作中的一个大型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);
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定这有什么用.您是否有可以阐明上述MapHelper实用性的示例?
这堂课看起来确实像现在这样轻浮; 然而:
这让他们指HashMap<String, Object>
的MapHelper
是短且保证一致性.另请参阅"C++中的typedef关键字是否存在Java等价物或方法?" .
as_dict
是一种执行强制转换的实用方法.他们似乎对Map包含的内容有远见.这是不是做演员,因为联投只在一个地方定义的安全.误差较小.
它允许他们以后添加其他功能,而无需更新整个代码库.
HashMap
作为顶级类进行扩展会使泛型类型参数具体化,也就是说,它们在运行时通过反射可用.请参阅Neal Gafter的这篇博文,更详细地解释了这一功能.
所以实际上有很多但很合理的原因.
Java API中有一些这样的例子,例如:
归档时间: |
|
查看次数: |
1169 次 |
最近记录: |