Java8使用可选的
我有一个代码块:Java8使用可选的,java,java-8,optional,Java,Java 8,Optional,我有一个代码块: public Builder withMultiValueMap(MultiValueMap<String, String> multiValueMap) { ... withRespondentId(Long.valueOf(multiValueMap.getFirst("respondentId"))); ... return this; } …但我想做得更好 是否可以使用java8 Optional或其他东西来简化?与此表达式具有相同结果的语
public Builder withMultiValueMap(MultiValueMap<String, String> multiValueMap) {
...
withRespondentId(Long.valueOf(multiValueMap.getFirst("respondentId")));
...
return this;
}
…但我想做得更好
是否可以使用java8 Optional或其他东西来简化?与此表达式具有相同结果的语法:
respondentId == null? null: Long.valueOf(respondentId)
是
因为它实际上更长,所以它不是一个完全的胜利,尽管它可能更可读。与此表达式具有相同结果的语法:
respondentId == null? null: Long.valueOf(respondentId)
是
因为它实际上更长,所以它不是一个完全的胜利,尽管它可能会更具可读性。如果
MultiValueMap
是您自己的类,您可以将getFirst
迁移到
Optional<V> getFirst(K key);
multiValueMap.getFirst(key).map(Long::valueOf).getOrElse(null);
可选的getFirst(K键);
multiValueMap.getFirst(key).map(Long::valueOf).getOrElse(null);
如果MultiValueMap
是您自己的类,您可以将getFirst
迁移到
Optional<V> getFirst(K key);
multiValueMap.getFirst(key).map(Long::valueOf).getOrElse(null);
可选的getFirst(K键);
multiValueMap.getFirst(key).map(Long::valueOf).getOrElse(null);
我不知道还有更好的Optional.ofNullable(respondentId).map(Long::valueOf).orElse(null))
Super。这正是我需要的!非常感谢。请添加答案以将其标记为已解决。代码将进行更清晰的重构,以便withRespondentId
方法不需要null
(可能使用null
场景集初始化)。然后可以编写可选的.ofNullable(respondentId).map(Long::valueOf).ifPresent(this::withRespondentId)代码>我不知道更好的Optional.ofNullable(respondentId).map(Long::valueOf).orElse(null))
Super。这正是我需要的!非常感谢。请添加答案以将其标记为已解决。代码将进行更清晰的重构,以便withRespondentId
方法不需要null
(可能使用null
场景集初始化)。然后可以编写可选的.ofNullable(respondentId).map(Long::valueOf).ifPresent(this::withRespondentId)代码>org.springframework.util.MultiValueMaporg.springframework.util.MultiValueMapYeah,我非常喜欢第一个版本。@LouisWasserman如果您有一个可空引用,我通常认为为了调用可选方法而将其装箱到可选中是错误的,而只是立即取消装箱。@StuartMarks是吗?我们在这里是一致的。是的,我非常喜欢第一个版本。@LouisWasserman如果你有一个可为空的引用,我通常认为为了调用可选方法而将其装箱到可选中是错误的,而只是立即取消装箱。@StuartMarks是吗?我们在这里意见一致。