通用接口上的Kotlin扩展函数

通用接口上的Kotlin扩展函数,kotlin,generics,kotlin-extension,Kotlin,Generics,Kotlin Extension,我试图为Kotlin接口编写一个扩展函数,该接口只返回对象的一个可观察值。到目前为止,这是我能够做到的,但我不知道这是否是实现此功能的最佳方式 以下是我到目前为止所定义的: 接口任何东西 inline fun Anything.toObservable():Observable=Observable.just(作为T) 这就是Anything接口的用法: 密封类某物:任何东西{ 对象某物酷:某物() 对象Something dumb:Something() } 枚举类输入{ 酷,, 哑的 }

我试图为Kotlin接口编写一个扩展函数,该接口只返回对象的一个可观察值。到目前为止,这是我能够做到的,但我不知道这是否是实现此功能的最佳方式

以下是我到目前为止所定义的:

接口任何东西
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)