我正在
类型不匹配:无法从第19行的元素类型对象转换为字符串错误。
你能告诉我如何解决它。
package SAPPI;
import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
Map vehicles = new HashMap();
// Add some vehicles.
vehicles.put("BMW", 5);
vehicles.put("Mercedes", 3);
vehicles.put("Audi", 4);
vehicles.put("Ford", 10);
System.out.println("Total vehicles: " + vehicles.size());
// Iterate over all vehicles, using the keySet method.
for(String key: vehicles.keySet())
System.out.println(key + " - " + vehicles.get(key));
System.out.println();
String searchKey = "Audi";
if(vehicles.containsKey(searchKey))
System.out.println("Found total " + vehicles.get(searchKey) + " "
+ searchKey + " cars!\n");
// Clear all values.
vehicles.clear();
// Equals to zero.
System.out.println("After clear operation, size: " + vehicles.size());
}
}
答案 0 :(得分:1)
简而言之,您应该使用Java Generics(如果您使用C#,也同样适用。)
专门查看您的代码:
Map vehicles = new HashMap();
车辆是原始类型。因此,当你像这样使用它时:
for(String key: vehicles.keySet())
编译器不知道keySet()
返回一组字符串。您只能在此处将循环变量声明为Object
。如果您使用过泛型(即如果您将vehicles
声明为Map<String>
,那么以上内容就可以了。