【发布时间】:2014-04-10 21:36:12
【问题描述】:
我正在尝试搜索数组列表并返回一个对象。我有一个 Vehicle 类,其中有一个名为 search 的方法,注册号和数组列表作为参数作为参数传递。
但是问题在于,在执行 for each 时,系统从不尝试比较 2 个字符串(注册号),因此该方法总是返回一个空对象。
方法:
public Vehicle search(String id, List<Vehicle> myList) {
Vehicle currenctVeh = new Vehicle();
for(Vehicle v: myList)
{
if(v.regNo == id)
{
currenctVeh = v;
}
}
return currenctVeh;
}
被调用:
Vehicle searchVeh = new Vehicle();
String regNum = JOptionPane.showInputDialog(null, "Enter Vehicle Registration Number");
searchVeh.search(regNum, allVehicles);
System.out.println(searchVeh.toString());
【问题讨论】:
-
比较字符串与
equals(),而不是==。if(v.regNo == id)变为if(v.regNo.equals(id))。