正如标题所述:我想找到为什么java.util.Properties
延伸Hashtable<Object, Object>
而不是Hashtable<String, String>
的问题的答案?
class Properties extends Hashtable<Object,Object> { ... }
我想知道因为方法setProperty(String key, String value)
只接受String值,而属性基于String键值表示。完整的方法体位于上面和此处的链接:
public synchronized Object setProperty(String key, String value) {
return put(key, value);
}
getProperty(String key)
方法和其他方法也是如此。
是否有任何具体原因延伸Hashtable<Object, Object>
并使用字符串?在使用Hastable<Object, Object>
或HashMap<Object, Object>
时,我是否应该注意这个用例?
答案 0 :(得分:1)
这是一个原因:该课程早于泛型。
Since:
JDK1.0
更新用于泛型的Java库的团队必须平衡“现在我们可以准确地捕获语义”和“人们会有很多破坏的代码”。大多数情况下,库已更新为使用现有代码进行编译和运行,但需要付出一定代价。