使用 for-each 迭代
Iterating using for-each
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) 而不是我在第二个代码中出错的原因。
您不应使用原始 Set
类型,因为在那种情况下 Set
的元素将被假定为 Object
类型。
相反,指定 Set
包含的元素类型:
Set<String> set = m.keySet();
for (String str : set) {
}
这是因为 Set 不知道要使用哪种类型,所以它会抛出异常,您必须使用 String
作为它的通用提要。就像下面的片段
Set<String> set = m.keySet();
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) 而不是我在第二个代码中出错的原因。
您不应使用原始 Set
类型,因为在那种情况下 Set
的元素将被假定为 Object
类型。
相反,指定 Set
包含的元素类型:
Set<String> set = m.keySet();
for (String str : set) {
}
这是因为 Set 不知道要使用哪种类型,所以它会抛出异常,您必须使用 String
作为它的通用提要。就像下面的片段
Set<String> set = m.keySet();