2017-04-14 5 views
-3

「の」私は、次のコンパイルエラーを取得:for文の:で、「互換性のない型をjava.lang.Object上位を変換することはできません...」ループ

incompatible types: java.lang.Object cannot be converted to Vehicle 

を。これを引き起こした原因と解決方法を教えてください。

List vehicledetails = new ArrayList(); 
vehicledetails.add(new Vehicle ("123", "London", "Mercedes", "12/2/2017")); 

... 

for (Vehicle s : vehicledetails) { 
    ... 
} 

答えて

1

あなたArrayListは、オブジェクトを取得中ニーズがをキャストタイプの生タイプなので、問題を解決するには、2つのオプションがあります:

はここ

は、私のコードの関連部分です

(1)からオブジェクトを取得している間に明示的なキャスティングが必要でないように、Vehicleタイプのオブジェクトのみを格納することができるジェネリックタイプ(以下に示す)を使用してArrayListを宣言するリスト(が好きです。 sオプション):以下に示すように

List<Vehicle> vehicledetails = new ArrayList<>(); 

(2)型キャストを使用します。

for (int i=0;i< vehicledetails.size();i++) { 
    Vehicle s = (Vehicle)vehicledetails.get(i); 
    //add other code 
} 
+0

@Michaelは、私の答えの仕事をしましたか? – developer

関連する問題