在 RxJava Observable 中使用子类
Using subclasses with RxJava Observable
我遇到以下代码错误:
interface A1 {
val string: String
}
data class A2(override var string: String = "") : A1
interface Test {
fun f(): Observable<List<A1>>
}
fun func(): Observable<List<A2>> = return ...
class TestImpl : Test{
override fun f(): Observable<List<A1>> = func()
}
最后一行代码中存在类型不匹配。如果可能的话,我该如何更改它以获得正确的声明?
您可以按如下方式通用化您的界面:
interface Test<T: A1> {
fun f(): Observable<List<T>>
}
然后实现如下:
class TestImpl : Test<A2> {
override fun f(): Observable<List<A2>> = func()
}
我遇到以下代码错误:
interface A1 {
val string: String
}
data class A2(override var string: String = "") : A1
interface Test {
fun f(): Observable<List<A1>>
}
fun func(): Observable<List<A2>> = return ...
class TestImpl : Test{
override fun f(): Observable<List<A1>> = func()
}
最后一行代码中存在类型不匹配。如果可能的话,我该如何更改它以获得正确的声明?
您可以按如下方式通用化您的界面:
interface Test<T: A1> {
fun f(): Observable<List<T>>
}
然后实现如下:
class TestImpl : Test<A2> {
override fun f(): Observable<List<A2>> = func()
}