gpt4 book ai didi

java-8 - 如何将 java.util.Optional 映射到某物?在 Kotlin

转载 作者:IT老高 更新时间:2023-10-28 13:35:32 32 4
gpt4 key购买 nike

我有一个返回 java.util.Optional<Something> 的方法.我想使用 Kotlin 的那个方法,我希望我的结果是 Something? ,而不是 Optional<Something>

如何在 Kotlin 中以惯用的方式做到这一点?

调用.orElse(null)Optional给我Something?确实,但看起来不太好。如果我写 val msg: Something = optional.orElse(null).,Kotlin 不会提示( msg 被声明为 Something,而不是 Something? - 我松散了编译类型检查)。

我使用 Kotlin 1.0.3

最佳答案

用解包方法扩展java API 可选:

fun <T> Optional<T>.unwrap(): T? = orElse(null)

然后随心所欲地使用它:

val msg: Something? = optional.unwrap()  // the type is enforced

https://kotlinlang.org/docs/reference/extensions.html了解详情。

关于java-8 - 如何将 java.util.Optional<Something> 映射到某物?在 Kotlin ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38767376/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com