stream流校验对象属性是否为空
时间: 2023-07-08 08:36:44 浏览: 117
可以使用 Stream 流的 filter 和 anyMatch 方法来校验对象属性是否为空。
假设有一个包含多个对象的 List,每个对象都有一个属性 name,我们需要校验这个属性是否为空。可以按照以下步骤操作:
1. 使用 Stream 流将 List 转换为一个 Stream 对象。
2. 使用 filter 方法过滤出 name 属性为空的对象。
3. 使用 anyMatch 方法判断是否存在 name 属性为空的对象。
示例代码如下:
```
List<User> userList = getUsers();
boolean isNameEmpty = userList.stream()
.filter(user -> user.getName() == null || user.getName().isEmpty())
.anyMatch(user -> true);
```
在上面的代码中,getUsers() 方法返回一个包含多个 User 对象的 List。我们首先使用 stream() 方法将其转换为一个 Stream 对象,然后使用 filter 方法过滤出 name 属性为空的对象,最后使用 anyMatch 方法判断是否存在 name 属性为空的对象。如果存在,则 isNameEmpty 的值为 true,否则为 false。
需要注意的是,如果对象属性是基本数据类型,那么不能使用 == null 判断是否为空,应该使用相应的判断方法,比如 int 类型使用 == 0。如果对象属性是 Boolean 类型,那么不能使用 isEmpty 方法判断是否为空,应该使用 == null 判断。
阅读全文