将Java Optional
转换为Arrow Option
的最佳方式是什么?我被期望有一些开箱即用的东西,但它不在那里.类似于:
fun <T> Optional<T>.toOption(): Option<T> = if (this.isPresent) Some(this.get()) else none()
将Java Optional
转换为Arrow Option
的最佳方式是什么?我被期望有一些开箱即用的东西,但它不在那里.类似于:
fun <T> Optional<T>.toOption(): Option<T> = if (this.isPresent) Some(this.get()) else none()
目前没有这样的功能,但这样的贡献将是受欢迎的!
但是,除非绝对必要,否则Arrow不建议使用Option
.唯一的用例是nested nulls,这是RxJava和项目react 堆的Reactive X实现的限制.这两个库都不允许在Flowable
、Flux
、Mono
等中使用null
作为其泛型值A
.
Analogue,您不能将null
用作Kotlin中泛型代码的empty signal.除非使用A : Any
将A
约束为非空.
只有在这两种情况下才应该使用Arrow的选项,否则Arrow维护者建议使用Kotlin的可空类型.