java - 为什么 Map<String, String> 的键(或值)没有作为字符串返回?

标签 java dictionary

在下面的简短代码片段中,Eclipse 标记了有关 String key = pair.getKey();String value = pair.getValue(); 的错误声明,说

"Type mismatch: cannot convert from Object to String"

这是相关代码:

    for (Map<String, String> dic : dics) {
        Iterator it = dic.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry pair = (Map.Entry)it.next();
            String key = pair.getKey();
            String value = pair.getValue();
        }               
    }

这是为什么?

到目前为止我看到的所有示例都没有将 pair.getKey() 或 pair.getValue() 转换为 String,因此我想在继续解决方案之前了解发生了什么。

最佳答案

试试这个:

for (Map<String, String> dic : dics) {
    Iterator<Map.Entry<String, String>> it = dic.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry<String, String> pair = it.next();
        String key = pair.getKey();
        String value = pair.getValue();
    }               
}

甚至更好(内部工作是相同的,但不那么冗长):

for (Map<String, String> dic : dics) {
    for(Map.Entry<String, String> pair : dic.entrySet()){
        String key = pair.getKey();
        String value = pair.getValue();
    }               
}

关于java - 为什么 Map<String, String> 的键(或值)没有作为字符串返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5392396/

相关文章:

java - 如何在 Spring Boot 中从 application.properties 分配注释值?

javascript - 如何在 map 上使用 Object.observe?

python Pandas : How can I sum all of the values of a dictionary in a column of my dataframe?

ios - 从 Plist 中检索颜色。 iOS

java - IntelliJ 调试器捕获同名的错误文件

java - 为什么在尝试使用 split ("."拆分字符串时打印出一个空数组)

java - 限制 HashMap 接受特定的字符串键

dictionary - 枚举字典中的键?

iphone - 我们如何在 Xcode 项目中创建自己的 plist 文件?

java - JVM 框架,哪一个?