通用接口上的Kotlin扩展函数
我试图为Kotlin接口编写一个扩展函数,该接口只返回对象的一个可观察值。到目前为止,这是我能够做到的,但我不知道这是否是实现此功能的最佳方式 以下是我到目前为止所定义的:通用接口上的Kotlin扩展函数,kotlin,generics,kotlin-extension,Kotlin,Generics,Kotlin Extension,我试图为Kotlin接口编写一个扩展函数,该接口只返回对象的一个可观察值。到目前为止,这是我能够做到的,但我不知道这是否是实现此功能的最佳方式 以下是我到目前为止所定义的: 接口任何东西 inline fun Anything.toObservable():Observable=Observable.just(作为T) 这就是Anything接口的用法: 密封类某物:任何东西{ 对象某物酷:某物() 对象Something dumb:Something() } 枚举类输入{ 酷,, 哑的 }
接口任何东西
inline fun Anything.toObservable():Observable=Observable.just(作为T)
这就是Anything
接口的用法:
密封类某物:任何东西{
对象某物酷:某物()
对象Something dumb:Something()
}
枚举类输入{
酷,,
哑的
}
有趣的getSomethingFromInput(输入:输入):可观察{
返回时(输入){
Input.COOL->Observable.just(Something.SomethingCool)//这是手动将对象包装到Observable中的方法
Input.DUMB->Something.somethingsdumb.toObservable()//这是使用新的扩展函数
}
}
正如我所说,这是可行的,但对我来说,似乎有一种更好的方法可以实现这一点,而我却错过了……如果您正在寻找一种更简单的方法,您可以这样做:
inline fun <reified T : Something> T.toObservable(): Observable<T> = Observable.just(this as T)
inline fun T.toObservable():Observable=Observable.just(此为T)