Optional.ofNullable(StringUtil.isBlank(deviceNo)).filter(Boolean.FALSE::equals).orElseThrow(() -> new RException("设备编号不能为空"));
时间: 2024-04-06 19:32:55 浏览: 19
这是一段Java代码,它的作用是判断设备编号是否为空,如果为空则抛出一个异常。具体来说,这段代码使用了Java 8中的Optional类,它可以包装一个对象并判断其是否为null。在这里,我们首先使用了StringUtil.isBlank方法判断设备编号是否为空,然后将其包装在Optional对象中。接着,我们使用了filter方法,传入一个lambda表达式,判断Optional对象是否为Boolean.FALSE,也就是判断设备编号是否为空。如果不为空,则直接返回Optional对象;如果为空,则使用orElseThrow方法抛出一个RException异常,异常信息为"设备编号不能为空"。
相关问题
Optional.ofNullable连着用
`Optional.ofNullable` 是 Java 8 中的一个方法,用于将一个可能为 null 的值包装成 Optional 对象。通过连续使用 `Optional.ofNullable` 可以进行链式调用,方便对多个可能为空的值进行处理。
下面是一个示例,演示了如何使用 `Optional.ofNullable` 进行链式调用:
```java
import java.util.Optional;
public class OptionalChainingExample {
public static void main(String[] args) {
String str = "Hello, World!";
String result = Optional.ofNullable(str)
.map(String::toUpperCase)
.orElse("Default Value");
System.out.println(result);
}
}
```
在上面的示例中,首先将字符串 `str` 使用 `Optional.ofNullable` 包装成 Optional 对象。然后通过 `map` 方法对 Optional 对象进行映射操作,将字符串转换为大写。最后使用 `orElse` 方法指定一个默认值,当原始字符串为 null 时,返回默认值。
通过连续使用 `Optional.ofNullable` 和其他 Optional 方法,你可以对多个可能为空的值进行处理,并链式地进行操作。这样可以避免空指针异常,并提供更加简洁和安全的代码。
需要注意的是,`Optional.ofNullable` 方法只适用于可能为 null 的值。对于已经确定不会为 null 的值,推荐使用 `Optional.of` 方法进行包装。
希望这个示例对你有帮助!如果还有其他问题,请随时提问。
使用 Optional.ofNullable 将list 变成set
使用 Optional.ofNullable 方法可以将一个可能为 null 的 List 对象转换成 Set 对象。下面是一个示例代码:
```java
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> list = null; // 假设这是一个可能为 null 的 List 对象
Set<String> set = Optional.ofNullable(list)
.map(List::stream)
.orElseGet(Stream::empty)
.collect(Collectors.toSet());
System.out.println(set);
}
}
```
在上面的代码中,我们首先使用 Optional.ofNullable 方法对可能为 null 的 List 对象进行包装。然后,我们使用 map 方法将 List 对象转换成 Stream 对象。接着,我们使用 orElseGet 方法来处理 List 为 null 的情况,返回一个空的 Stream 对象。最后,我们使用 collect 方法将 Stream 对象转换成 Set 对象。
如果 List 对象不为 null,则会将 List 中的元素转换成 Set 对象;如果 List 对象为 null,则会得到一个空的 Set 对象。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)