2017-01-23 97 views
0

我越來越類型不匹配:不能從元素類型的對象轉換爲字符串:哈希映射

類型不匹配:不能從元素類型對象轉換爲字符串錯誤的行數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

簡而言之,你應該使用Java Generics(同樣也適用,如果你使用的是C#)。

你的代碼專門找:

Map vehicles = new HashMap(); 

汽車是原始類型。因此,當你這樣使用它時:

for(String key: vehicles.keySet()) 

編譯器不知道keySet()返回一組字符串。你只能在這裏聲明你的循環變量爲Object。如果您使用過仿製藥(即,如果您將vehicles宣佈爲Map<String>,那麼上述操作將會生效。

+0

謝謝。它有幫助。 – Prashant

相關問題