Guava 中的 TryFind 方法抛出 NullPointerException
TryFind method in Guava throw NullPointerException
我在 运行 我的 Web 应用程序时收到 NullPointerException,我保存日志并再次启动服务器,此错误不再出现,但我希望 NullPointer 的保护方法从未出现。我确定这一行是导致此错误的原因
Vehicle pVehicle =
Iterables.tryFind(aFactory.getVehicle(), new Predicate<Vehicle>() {
@Override
public boolean apply(Vehicle vehicle) {
return vehicle.getVehicleBrand().equals(aVehicle.getVehicleBrand());
}
}).orNull();
但这不是我的代码,我不知道是哪个部分导致了这个错误>
请问这个NullPointer可以出现在哪个元素上以及如何保护这段代码
可以生成空指针:
aFactory.getVehicle() : if aFactory is null
vehicle.getVehicleBrand() : if vehicle is null
aVehicle.getVehicleBrand() : if aVehicle is null
检查以下语句:
aFactory
- 因为 getVehicle()
调用。
aFactory.getVehicle()
- 因为 Iterables.tryFind 需要一个非空的 Iterable
vehicle
- 因为 getVehicleBrand()
调用
aVehicle
- 因为 getVehicleBrand()
调用
vehicle.getVehicleBrand()
- 因为 .equals()
调用
如果其中任何一个为空,则会导致 NullPointerException
我在 运行 我的 Web 应用程序时收到 NullPointerException,我保存日志并再次启动服务器,此错误不再出现,但我希望 NullPointer 的保护方法从未出现。我确定这一行是导致此错误的原因
Vehicle pVehicle =
Iterables.tryFind(aFactory.getVehicle(), new Predicate<Vehicle>() {
@Override
public boolean apply(Vehicle vehicle) {
return vehicle.getVehicleBrand().equals(aVehicle.getVehicleBrand());
}
}).orNull();
但这不是我的代码,我不知道是哪个部分导致了这个错误> 请问这个NullPointer可以出现在哪个元素上以及如何保护这段代码
可以生成空指针:
aFactory.getVehicle() : if aFactory is null
vehicle.getVehicleBrand() : if vehicle is null
aVehicle.getVehicleBrand() : if aVehicle is null
检查以下语句:
aFactory
- 因为getVehicle()
调用。aFactory.getVehicle()
- 因为 Iterables.tryFind 需要一个非空的 Iterablevehicle
- 因为getVehicleBrand()
调用aVehicle
- 因为getVehicleBrand()
调用vehicle.getVehicleBrand()
- 因为.equals()
调用
如果其中任何一个为空,则会导致 NullPointerException