2017-01-23 5 views
0

私は型の不一致:Stringに要素のObject型から変換することはできません。HashMapの

型の不一致を取得しています:19

行番号で文字列エラーに要素のObject型から変換することはできませんすることはできますが、それを修正する方法を教えてください。一言で言えば

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

、あなたは(あなたがC#を使用している場合は、同じでも適用される)Java Genericsを使用する必要があります。あなたのコードで特異的に見ると

Map vehicles = new HashMap(); 

車は、生タイプです。そのため、あなたはこのようにそれを使用する場合:

for(String key: vehicles.keySet()) 

コンパイラkeySet()は、文字列の集合を返すことを知りません。ループ変数はObjectとして宣言できます。ジェネリックスを使用した場合(つまり、Map<String>としてvehiclesと宣言した場合は、上記が有効になります)

+0

ありがとうございました。 – Prashant

関連する問題