迭代使用for-each

时间:2015-04-14 08:49:19

标签: java dictionary collections iterator core

for (String str : m.keySet()) {//this works fine

    }

Set set = m.keySet();
for (String str : set) {//Type mismatch: cannot convert from element type Object to String

    }

两者都做同样的事情,即迭代Set对象的Keys(String),而不是我在第二个代码中得到错误的原因。

2 个答案:

答案 0 :(得分:6)

您不应该使用原始Set类型,因为在这种情况下,Set的元素将被假定为Object类型。

相反,请指定Set包含的元素类型:

Set<String> set = m.keySet();
for (String str : set) {

}

答案 1 :(得分:1)

因为Set不知道要使用哪种类型,因此抛出异常必须使用String作为它的通用提要。如下面的代码段

Set<String> set = m.keySet();