java里的Orelse.orelse()和StringUtils.defaultIfBlank()有什么不同?
时间: 2024-03-29 18:34:38 浏览: 131
Java语言中没有`orelse()`方法,而是有`Optional.orElse()`方法。`Optional`是Java8中引入的新特性,用于避免空指针异常。如果`Optional`对象为空,`orElse()`方法会返回提供的默认值,否则返回`Optional`对象的值。与Python中的`orelse()`方法类似,`Optional.orElse()`方法可以处理任何类型的对象。
`StringUtils.defaultIfBlank()`方法则在给定的字符串为空、null或只包含空格时返回提供的默认值。如果给定的字符串不为空,则直接返回该字符串。与`Optional.orElse()`方法不同,`StringUtils.defaultIfBlank()`方法只能处理字符串类型的参数。
因此,虽然它们都用于提供默认值,但它们是不同的方法,用于不同的用途。`Optional.orElse()`方法用于处理任何类型的对象,而`StringUtils.defaultIfBlank()`方法用于处理字符串类型的参数。
相关问题
Orelse.orelse()和StringUtils.defaultIfBlank()有什么不同?
`orelse()`是Python语言中的方法,而`StringUtils.defaultIfBlank()`则是Apache Commons Lang库中Java语言的方法。它们的作用类似,都用于在给定的字符串为空或null时提供默认值。
`orelse()`方法通过在给定的对象为空时返回提供的默认值来实现此目的。如果给定的对象不为空,则直接返回该对象。在Python中,`orelse()`方法通常用于处理字典和列表等数据结构。
`StringUtils.defaultIfBlank()`方法则在给定的字符串为空、null或只包含空格时返回提供的默认值。如果给定的字符串不为空,则直接返回该字符串。在Java中,`StringUtils.defaultIfBlank()`方法通常用于处理字符串。
因此,虽然它们的作用类似,但它们是不同语言和库中的不同实现。
@Override public IPage<ReportPrintVO> reportPrintingPage(IPage<ReportPrintVO> page, QueryWrapper<ReportPrintVO> wrapper) { List<ReportPrintVO> reportPrintVOS = baseMapper.reportPrintingPage(page, wrapper); Map<String, String> testTypeMap = BusDictBizCache.getValueMap(BusDictConstant.INSPECTION_TYPE); if (CollectionUtils.isNotEmpty(reportPrintVOS)) { for (ReportPrintVO reportPrint : reportPrintVOS) { LocalDate wranDate = LocalDate.now(); Integer expireDay = Optional.ofNullable(BasParamCache.getValue(BusParamConstant.INSTRUMENT_EXPIRE_DAY)) .map(v -> StringUtils.isEmpty(v) ? 1 : Integer.parseInt(v)).orElse(1); wranDate = wranDate.plusDays(expireDay); BusSampleReportPageVO busSampleReportPageVO = new BusSampleReportPageVO(); busSampleReportPageVO.setPlanCompleteDate(reportPrint.getPlanCompleteDate()); setWarnType(busSampleReportPageVO, wranDate); reportPrint.setWarnType(busSampleReportPageVO.getWarnType()); reportPrint.setQrcodeUrl(BusTemplateUtil.getQrCodeContent(reportPrint.getReportId())); // 检校类型 reportPrint.setInspectionTypeName(testTypeMap.get(reportPrint.getInspectionType())); } } return page.setRecords(reportPrintVOS); }我要在这段代码中加上查询条件 根据bs.report_no 从小到大进行排序
要在这段代码中添加根据 "bs.report_no" 字段从小到大进行排序的查询条件,可以使用 QueryWrapper 类的 orderByAsc 方法。请将以下代码添加到你的方法中:
```java
wrapper.orderByAsc("bs.report_no");
```
确保在调用 `baseMapper.reportPrintingPage(page, wrapper)` 前设置了排序条件。这样就会按照 "bs.report_no" 字段从小到大进行排序。
阅读全文