Java JDK 8可选功能

Java JDK 8可选功能,java,java-8,optional,Java,Java 8,Optional,对不起,如果我不清楚: 我正在使用SpringBoot实现Restful服务。 我正在基于请求参数构建URI。我正在检查参数值,并基于此需要使用参数值构建URI。如果它不是null,我想将它添加到URI参数中。 主持人/hello?abc=“somevalue” MultiValueMap参数=新链接的MultiValueMap(); 如果(null!=abc){ 参数添加(“abc”、“123”); } 我不熟悉JDK 8特性 1) 如何使用JDK 8可选功能实现这一点 2) 是否可以同时抛

对不起,如果我不清楚: 我正在使用SpringBoot实现Restful服务。 我正在基于请求参数构建URI。我正在检查参数值,并基于此需要使用参数值构建URI。如果它不是null,我想将它添加到URI参数中。 主持人/hello?abc=“somevalue”

MultiValueMap参数=新链接的MultiValueMap();
如果(null!=abc){
参数添加(“abc”、“123”);
}
我不熟悉JDK 8特性

1) 如何使用JDK 8可选功能实现这一点


2) 是否可以同时抛出异常并使用可选项记录它?

坦白说,我认为在这里使用
可选项没有任何意义。您拥有的代码很好(我们可以随时讨论Yoda条件)

如果你坚持,你可以写:

    Optional.ofNullable(abc).ifPresent(abc -> params.add("abc","123"));

链接:

不清楚您在寻找什么,但是对于空检查,您可以使用
对象。isNull(Object obj)
否,如果是可选的,则“抛出异常并记录它”是不可能的,但是您的代码示例也不可能。如果是
可选的
,则在缺少值的情况下抛出异常非常简单,如果这就是你的意思?我同意这很不清楚。我不知道你在找什么,如果你想检查你的值是否为空,请使用
null!=value
查看其中的公认答案,它提供了一些关于何时应使用或不应使用可选选项的好建议,但这肯定不是这样做的情况。“坦率地说,我认为在这里使用可选选项没有任何意义。”非常同意。1+. “这已经很好了。”“谢谢你。不客气,”阿尔帕尼亚说。如果你认为答案是有用的,请考虑接受它,在这种情况下,你也不需要谢谢你的评论。这是堆栈溢出工作的一种稍微非个人的方式。
    Optional.ofNullable(abc).ifPresent(abc -> params.add("abc","123"));