for (PageInfo pageInfo : pageInfoList) { if (pageInfo.getState() == 1) { pageInfo.setState(true); } else { pageInfo.setState(false); } }改成foreach循环
时间: 2024-03-24 19:36:37 浏览: 56
好的,以下是使用 foreach 循环遍历 pageInfoList 并修改 state 的代码实现:
```
for (PageInfo pageInfo : pageInfoList) {
if (pageInfo.getState() == 1) {
pageInfo.setState(true);
} else {
pageInfo.setState(false);
}
}
```
改写为 foreach 循环:
```
for (PageInfo pageInfo : pageInfoList) {
pageInfo.setState(pageInfo.getState() == 1 ? true : false);
}
```
其中,`pageInfoList` 是一个 `List<PageInfo>` 类型的集合,`PageInfo` 类中含有 `getState()` 和 `setState(boolean state)` 方法,可以通过 `pageInfo.getState()` 获取 `state` 值,通过 `pageInfo.setState(boolean state)` 设置 `state` 值。循环遍历 `pageInfoList`,并使用三元运算符判断每一个 `pageInfo` 对象的 `state` 值是否等于 1,如果是,则将 `state` 设置为 `true`,否则设置为 `false`。
相关问题
public ResultInfo getBookListByPage(Page<Book> page) { Book book = new Book(); ResultInfo resultInfo = new ResultInfo(); // 判断是否进行关键字搜索 Book searchBook = page.getSearchEntity(); if (!isEmpty(searchBook.getName())) { book.setName(searchBook.getName()); } if (searchBook.getState() != 0) { book.setState(searchBook.getState()); } // 不知道当前页多少,默认为第一页 if (page.getPage() == null) { page.setPage(1); } if (page.getSize() == null) { page.setSize(5); } PageHelper.startPage(page.getPage(), page.getSize()); List<Book> bookList = bookMapper.selectByParams(book); PageInfo<Book> pageInfo = new PageInfo<>(bookList); page.setTotal(pageInfo.getTotal()); page.setList(bookList); resultInfo.setCode(0); resultInfo.setMsg(""); resultInfo.setData(page); return resultInfo; }
这是一个Java方法,它使用PageHelper进行分页查询图书列表,并返回一个包括分页信息和图书列表的ResultInfo对象。其中,Page<Book> page是一个包含分页信息的对象,Book是一个图书实体类,bookMapper是一个图书数据访问对象。该方法先判断是否进行关键字搜索,如果有则将搜索关键字加入查询条件中,然后设置默认的分页页数和每页数量,接着使用PageHelper进行分页查询,并将查询结果存入page对象中。最后,将page对象封装进ResultInfo对象中并返回。
优化以下代码: for (DqExecuteResult dqExecuteResult : dqExecuteResults) { // 一致性 if (RuleTemplateName.MULTI_TABLE_ACCURACY.getCode().equals(dqExecuteResult.getRuleName())) { coherenceTotal += dqExecuteResult.getTotal(); if (DqTaskState.FAILURE.getCode() == dqExecuteResult.getState()) { coherenceSuccess += (dqExecuteResult.getTotal() - Math.round(dqExecuteResult.getStatisticsValue())); } else{ coherenceSuccess += dqExecuteResult.getTotal(); } } // 完备性 else if(RuleTemplateName.NULL_CHECK.getCode().equals(dqExecuteResult.getRuleName())){ completeTotal += dqExecuteResult.getTotal(); if (DqTaskState.FAILURE.getCode() == dqExecuteResult.getState()) { completeSuccess += (dqExecuteResult.getTotal() - Math.round(dqExecuteResult.getStatisticsValue())); } else{ completeSuccess += dqExecuteResult.getTotal(); } } // 有效性 else { effectiveTotal += dqExecuteResult.getTotal(); if (DqTaskState.FAILURE.getCode() == dqExecuteResult.getState()) { effectiveSuccess += (dqExecuteResult.getTotal() - Math.round(dqExecuteResult.getStatisticsValue())); } else{ effectiveSuccess += dqExecuteResult.getTotal(); } } }
可以考虑以下优化:
1. 将重复的代码提取出来,避免重复书写,可以提高代码的可读性和维护性;
2. 可以使用 switch-case 语句替代 if-else if 语句,使代码更加简洁;
3. 可以将常量提取出来,避免在代码中多次出现,提高可维护性。
下面是优化后的代码:
```
final String MULTI_TABLE_ACCURACY = RuleTemplateName.MULTI_TABLE_ACCURACY.getCode();
final String NULL_CHECK = RuleTemplateName.NULL_CHECK.getCode();
for (DqExecuteResult dqExecuteResult : dqExecuteResults) {
String ruleName = dqExecuteResult.getRuleName();
int state = dqExecuteResult.getState();
int total = dqExecuteResult.getTotal();
double statisticsValue = dqExecuteResult.getStatisticsValue();
switch (ruleName) {
case MULTI_TABLE_ACCURACY:
coherenceTotal += total;
coherenceSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total;
break;
case NULL_CHECK:
completeTotal += total;
completeSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total;
break;
default:
effectiveTotal += total;
effectiveSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total;
}
}
```
阅读全文