【发布时间】:2018-12-13 02:46:23
【问题描述】:
对不起,如果不清楚: 我正在使用 Spring Boot 实现 Restful 服务。 我正在根据请求参数构建一个 URI。我正在检查参数值,并基于此我需要使用参数值构建 URI。如果它不是 null 我想将它添加到 URI 参数。 主机/hello?abc="somevalue"
MultiValueMap<String,String> params=new LinkedMultiValueMap<String,String>();
if (null != abc) {
params.add("abc","123");
}
我是 JDK 8 功能的新手。
1) 如何使用 JDK 8 可选功能来做到这一点?
2) 是否可以同时抛出异常并使用 Optional 记录它?
【问题讨论】:
-
不清楚你在找什么,但对于空检查你可以使用
Objects.isNull(Object obj) -
不,使用 Optional 不可能“抛出异常并记录它”,但您的代码示例也不可能。
-
使用
Optional,如果值丢失,抛出异常很简单直接,如果这就是你的意思吗?我同意这很不清楚。然后让任何代码捕获它,无论是记录它还是应该做什么。 -
我不知道你在找什么,如果你想检查你的值是否为空,请使用
null != value -
在this post 中查看已接受的答案,它提供了一些关于何时应该或不应该使用 Optional 的好建议,当然不是这样。