首页 > 解决方案 > 在不获取 NullPointerException 的情况下设置 null

问题描述

if (request.getHeight() != null) {
   mechEquipment.setHeight(request.getHeight());
}

if (!ObjectUtils.isEmpty(request.getCargoBoxSize())) {
   mechEquipment.setCargoBoxSize(request.getCargoBoxSize());
}

我使用这样的子句来设置我的数据,但有时我需要将其设置为 null。如果我删除 if 子句,并且我没有更改项目,它会给我一个空指针异常,因为它不在 PATCH 请求中。

我怎样才能改变这个?

目前我的权重设置为 300。如果我清除前端的输入并发送它,请求将是weight = null. 但是由于 IF 子句避免了这种情况,我不知道该怎么做。

标签: javaspringspring-bootjava-8

解决方案


Java-8 提供了Optional类:该类的目的是提供一个类型级别的解决方案,用于表示可选值以及空值而不是空引用。

目前我的权重设置为 300。如果我清除前端的输入并发送它,请求将是weight = null. 但是由于 IF 子句避免了这种情况,我不知道该怎么做。

您可以创建如下重量

Optional<Integer> weight = Optional.ofNullable(null); //can take weight as null also
Optional<Integer> weight = Optional.of(100); // will take any values except null

推荐阅读