我收到以下编译错误:
incompatible types: java.lang.Object cannot be converted to Vehicle
在for
声明中。造成这种情况的原因以及如何解决?
以下是我的代码的相关部分:
List vehicledetails = new ArrayList();
vehicledetails.add(new Vehicle ("123", "London", "Mercedes", "12/2/2017"));
...
for (Vehicle s : vehicledetails) {
...
}
答案 0 :(得分:1)
在检索对象时,您的ArrayList
是需要输入类型的原始类型,因此有两种方法可以解决此问题:
(1)使用泛型类型(如下所示)声明ArrayList
,即它只能存储Vehicle
类型对象,以便在从vehicledetails
检索对象时不需要显式强制转换列表(更喜欢此选项):
List<Vehicle> vehicledetails = new ArrayList<>();
(2)使用如下所示的类型转换:
for (int i=0;i< vehicledetails.size();i++) {
Vehicle s = (Vehicle)vehicledetails.get(i);
//add other code
}