类型不匹配:无法从元素类型Object转换为String:Hashmap

时间:2017-01-23 11:25:10

标签: dictionary hashmap

我正在

  

类型不匹配:无法从第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()); 
}
}

1 个答案:

答案 0 :(得分:1)

简而言之,您应该使用Java Generics(如果您使用C#,也同样适用。)

专门查看您的代码:

Map vehicles = new HashMap();

车辆是原始类型。因此,当你像这样使用它时:

for(String key: vehicles.keySet())

编译器不知道keySet()返回一组字符串。您只能在此处将循环变量声明为Object。如果您使用过泛型(即如果您将vehicles声明为Map<String>,那么以上内容就可以了。