运行我的webapplication时出现NullPointerException,我保存日志并再次启动服务器,此错误不再出现,但我希望保护方法到NullPointer从未出现过。我确定这一行是造成这个错误的原因
Vehicle pVehicle =
Iterables.tryFind(aFactory.getVehicle(), new Predicate<Vehicle>() {
@Override
public boolean apply(Vehicle vehicle) {
return vehicle.getVehicleBrand().equals(aVehicle.getVehicleBrand());
}
}).orNull();
但这不是我的代码,我不知道,哪一部分可能会导致此错误&gt; 请问,这个NullPointer可以出现哪个元素以及如何保护此代码
答案 0 :(得分:2)
检查以下陈述:
Entity ExpenseTypeCode Amount Description APSupplierID ExpenseReportID
12 001 5 Dinner 7171 90
12 001 6 Dinner 7171 90
12 001 5 Dinner 7273 90
12 001 5 Dinner 7171 95
12 001 5 Dinner 7171 90
- 由于aFactory
来电。getVehicle()
- 因为Iterables.tryFind需要一个非null的Iterable aFactory.getVehicle()
- 由于vehicle
来电getVehicleBrand()
- 由于aVehicle
来电getVehicleBrand()
- 由于vehicle.getVehicleBrand()
来电如果其中任何一个为null,则会导致.equals()
答案 1 :(得分:1)
可以生成空指针:
aFactory.getVehicle() : if aFactory is null
vehicle.getVehicleBrand() : if vehicle is null
aVehicle.getVehicleBrand() : if aVehicle is null