首页 > 解决方案 > 使用任何最新的库功能高效编码

问题描述

我有一个特定的代码块,我想更有效地使用它,很快就会使用任何晚于 Java 8 的功能。我不知道是否存在任何功能,所以如果你没有任何功能,我可能会像以前一样继续这样做建议。这是我要修改的代码块:

if(page != null) {
  coPage = companyService.findByCity(city, Integer.valueOf(page)-1);
}else {
  page="1";
  coPage = companyService.findByCity(city, 0);
}

我尝试使用 Optional 来执行此操作,但变量“page”有问题,因为我在 lambda 表达式中为局部变量分配了一个值,而编译器不允许我这样做。

标签: javajava-8

解决方案


使用 Optional 很简单:

coPage = companyService.findByCity(city, Integer.METHOD(Optional.ofNullable(page).orElse("1"))-1);

其中 METHOD 分别是parseIntvalueOf之一。

但是,按照Brian Goetz的规定,通常最好以下列方式使用 Optional

[可选是] 库方法返回类型的有限机制,其中 [需要] 有一种明确的方式来表示“无结果”,并且使用 null 来表示这种 [is] 极有可能导致错误。


推荐阅读