我已经编码好了:
Optional.ofNullable(this.cache.get(id))
.orElseGet(this.referenceService.get(id));
问题是这个。参考服务。get
返回一个可选的
。
因此,我得到了以下信息:
方法或Elseget(供应商
有什么想法吗?
如果您使用的是Java 9,则可以访问可选。或
,接受供应商
如果不是,则以下模式有效:
Optional.ofNullable(this.cache.get(id))
.orElseGet(() -> this.referenceService.get(id)
.orElseThrow(()-> new RuntimeException("Expected service to return something")));
从java 9开始,你可以使用Optional.or()
Optional<String> foo = Optional.empty();
Optional<String> bar = Optional.ofNullable("Bar");
System.out.println(foo.or(() -> bar));
编译错误->[无法推断flatMap(函数>)的类型参数]
为什么这段代码会抛出异常?为什么它还要去“奥雷尔斯”分店? 这是因为某种怪异的处决令吗?那么在计算orElse分支之前没有设置第一个可选项的值?
对于Java流,有没有理由使用而不是和的组合? 例如使用: 或
考虑一个和方法。我想将s映射到s并获得第一个。显而易见的解决方案是使用,但要求返回一个流,而没有方法(或者它是或提供一个方法将其转换为,或将其作为)查看。 我能想出的最好的办法是: 但这似乎是一个很普通的案例,但却显得太冗长了。谁有更好的主意?
有人能描述一下flatMap与compactMap的这种行为吗?compactMap不是刚刚重命名为flatMap吗?因为我发现他们表现不同 这是它打印的 有人能告诉我为什么当我使用嵌套数组不扁平吗?
我有以下代码,它应该从modelService返回orgId,但不能使用可选的 此代码不起作用总是返回 但是下面的代码工作得很好,不知道上面的代码有什么问题 其中总是,这是正确的代码,我只更改了一些变量名