java - 如何在java中将Map<Object, Object>转换为Map<String, String>?

标签 java dictionary inputstream

我有一个Object类型的Map,我需要将这个map转换为String类型。

Map<String, String> map = new HashMap<String, String>();    
Properties properties = new Properties();    
properties.load(instream);     

任何人都可以告诉我,如何将属性分配给上面的 map 吗?

谢谢和问候, 姆奈杜

最佳答案

将属性添加到 map 的最简洁方法是(按照您的示例):

for (String propName : properties.stringPropertyNames()) {
    map.put(propName, properties.getProperty(propName));
}

这在这种特殊情况下效果很好,因为 Properties对象实际上是一个包含字符串键和值的映射,如 getProperty方法说清楚了。它仅声明为 Map<Object, Object>由于可怕的向后兼容性原因。

通过使用特定于属性的方法,而不是将其视为只是 Map<Object, Object> ,您可以填写您的 Map<String, String>具有完美的类型安全性(而不是必须强制转换)。

关于java - 如何在java中将Map<Object, Object>转换为Map<String, String>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17208346/

相关文章:

java - 我的代码在 asyncTask 中不起作用

java - @Select 在没有参数而不是选择所有实体时引发错误(Datastax Java 驱动程序映射器)

java - FAB 到 AlertDialog 的动画 xml?

java - 有没有一种方法可以检查数组中的特定点是否具有特定字符?

swift - 如何更新混合类型的 Swift 字典值,尤其是数组

java - 何时(多久)打开/关闭输入/输出流?

java - 基本的java套接字编程问题

java - 点燃持久化集 : Cannot find metadata for object with compact footer

python - 在Python中的嵌套字典中存储目录结构

python - 通过 for 循环将字典推送到列表