如何正确使用Java 8 Optional,它可以有条件地返回值或引发异常?

时间:2018-12-03 07:43:10

标签: java java-8 optional

我想实现类似于以下代码的内容来验证@RestController中的输入,以便避免显式的空检查,但是我被卡住了。

public @ResponseBody Response getCityDetails(@RequestParam("city") final String city) {
    Optional.of(city).ifPresent(name -> {
        // return value
        return service.getDetails(name);
    }).orElseThrow(//some Exception);
}

1 个答案:

答案 0 :(得分:11)

尝试

Optional.ofNullable(city)
        .map(name ->service.getDetails(name))
        .orElseThrow(//some Exception);