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),而不是我在第二个代码中得到错误的原因。
答案 0 :(得分:6)
您不应该使用原始Set
类型,因为在这种情况下,Set
的元素将被假定为Object
类型。
相反,请指定Set
包含的元素类型:
Set<String> set = m.keySet();
for (String str : set) {
}
答案 1 :(得分:1)
因为Set不知道要使用哪种类型,因此抛出异常必须使用String
作为它的通用提要。如下面的代码段
Set<String> set = m.keySet();