list.stream().map(this::AccountVO2).collect(Collectors.toList()) 请换一种方式改写上述代码
时间: 2023-08-21 12:21:24 浏览: 81
可以使用 lambda 表达式来替代方法引用 this::AccountVO2,改写后的代码如下:
```
list.stream().map(account -> AccountVO2(account)).collect(Collectors.toList())
```
或者更简洁的写法:
```
list.stream().map(AccountVO2::new).collect(Collectors.toList())
```
这样可以直接使用构造函数引用 AccountVO2::new 来创建 AccountVO2 对象。
相关问题
public List<AccountVO> queryAccountList(String id, String name, String tel) { Account account = new Account(); account.setId(id); account.setName(name); account.setTel(tel); List<Account> list = accountMapper.selectAccountList1(account); if (org.springframework.util.CollectionUtils.isEmpty(list)) { return new ArrayList<>(); } return list.stream().map(this::AccountVO2).collect(Collectors.toList()); }请改写代码
可以使用 Java 8 的 Optional 类型来改写代码,让代码更简洁易读。改写后的代码如下:
```
public List<AccountVO> queryAccountList(String id, String name, String tel) {
Account account = new Account();
Optional.ofNullable(id).ifPresent(account::setId);
Optional.ofNullable(name).ifPresent(account::setName);
Optional.ofNullable(tel).ifPresent(account::setTel);
List<Account> list = accountMapper.selectAccountList1(account);
return list.stream().map(AccountVO2::new).collect(Collectors.toList());
}
```
这样代码更加简洁,使用了 Optional 类型来避免了繁琐的 null 判断,使用方法引用来创建 AccountVO2 对象。
//根据主问题编码将对应的子问题添加进问题表 List<ContOptHealQueEntity> sidQuestionList = contOptHealQueMapper.selectList( new LambdaQueryWrapper<ContOptHealQueEntity>() .in(ContOptHealQueEntity::getQuestionNo, contOptWelQuerelEntityList.stream() .map(ContOptWelQuerelEntity::getSid) .collect(Collectors.toList())) );解析每个方法的作用,变成我能看懂的方法,用fori循环
这段代码的作用是查询一个问题表(ContOptHealQueEntity)中的子问题列表,子问题的编号(questionNo)在一个给定列表(contOptWelQuerelEntityList)中。
我将这段代码改写成使用 for 循环的形式:
```
List<Integer> sidList = new ArrayList<>();
for (ContOptWelQuerelEntity entity : contOptWelQuerelEntityList) {
sidList.add(entity.getSid());
}
List<ContOptHealQueEntity> sidQuestionList = new ArrayList<>();
for (ContOptHealQueEntity question : contOptHealQueMapper.selectList(new LambdaQueryWrapper<ContOptHealQueEntity>().in(ContOptHealQueEntity::getQuestionNo, sidList))) {
sidQuestionList.add(question);
}
```
其中,第一个循环将 `contOptWelQuerelEntityList` 中的每个实体对象的 `sid` 属性添加到 `sidList` 列表中;第二个循环则查询 `ContOptHealQueEntity` 表中 `questionNo` 属性值在 `sidList` 中的所有记录,并将其添加到 `sidQuestionList` 列表中。
阅读全文