我有一个返回的方法java.util.Optional<Something>
。我想使用Kotlin的方法,并且我希望结果是Something?
,而不是Optional<Something>
如何以惯用的方式在科特林做到这一点?
叫.orElse(null)
上Optional
给我Something?
确实的,但它并不好看。如果我编写Kotlin不会抱怨val msg: Something = optional.orElse(null).
(msg
声明为Something
,不是Something?
-我松了编译类型检查)。
我使用Kotlin 1.0.3
使用以下方法扩展Java API Optional
:
fun <T> Optional<T>.unwrap(): T? = orElse(null)
然后按需要使用它:
val msg: Something? = optional.unwrap() // the type is enforced
有关详细信息,请参见https://kotlinlang.org/docs/reference/extensions.html。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句