【发布时间】:2018-04-08 11:31:31
【问题描述】:
在下面的列表中,有 3 辆卡车,我需要用示例将拖车的数量加起来。
在第一个“if”中,我想比较车辆是否与卡车属于同一类型,但如果使用“equals”,则此代码不打印任何内容,并且可以肯定它应该打印 3。
import java.util.ArrayList;
import java.util.Collection;
public class TesteTest {
public static void main(String[] args) {
Collection<Vehicle> vehicles = new ArrayList<Vehicle>();
vehicles.add(new Car());
vehicles.add(new Car());
vehicles.add(new Truck());
vehicles.add(new Truck());
vehicles.add(new Truck());
int counter = 0;
Truck truck = new Truck();
for (Vehicle vehicle : vehicles) {
System.out.println();
if (vehicle.equals(truck)) {
truck = (Truck) vehicle;
if (truck.hasTruck()) {
counter++;
System.out.println(counter);
}
}
}
}
}
如何在不重写equal方法的情况下进行比较?
谢谢!
【问题讨论】:
-
你必须使用 instanceOf stackoverflow.com/questions/6149677/…
标签: java