将Java Optional转换为Arrows Option的最佳方法是什么?我希望有一些现成的东西,但它不在那里。类似于:
Optional
Option
fun <T> Optional<T>.toOption(): Option<T> = if (this.isPresent) Some(this.get()) else none()
rsl1atfo1#
目前还没有这样的功能,但这样的贡献将受到欢迎!Arrow不推荐使用Option,除非绝对必要。唯一的用例是 nested nulls,这是RxJava和Project Reactor的ReactiveX实现的限制。这两个库都不允许null作为Flowable,Flux,Mono等中的泛型值A。类似地,您不能将null用作Kotlin中通用代码的 * 空信号 *。除非通过使用A : Any将A约束为非空。只有在这两种情况下,您才应该使用Arrow的Option,否则,Arrow维护者建议使用Kotlin的可空类型。
null
Flowable
Flux
Mono
A
A : Any
1条答案
按热度按时间rsl1atfo1#
目前还没有这样的功能,但这样的贡献将受到欢迎!
Arrow不推荐使用
Option
,除非绝对必要。唯一的用例是 nested nulls,这是RxJava和Project Reactor的ReactiveX实现的限制。这两个库都不允许null
作为Flowable
,Flux
,Mono
等中的泛型值A
。类似地,您不能将
null
用作Kotlin中通用代码的 * 空信号 *。除非通过使用A : Any
将A
约束为非空。只有在这两种情况下,您才应该使用Arrow的Option,否则,Arrow维护者建议使用Kotlin的可空类型。