【发布时间】:2020-03-16 18:03:20
【问题描述】:
interface BarInterface {
val bar: Int
}
interface FooBarInterface {
var foo: BarInterface
}
data class Bar(override val bar: Int): BarInterface {}
data class FooBar(override val foo: Bar): FooBarInterface {}
失败
Var-property public open val foo: Bar defined in FooBar cannot be \
overridden by val-property public abstract var foo: \
BarInterface defined in FooBarInterface
Type of 'foo' doesn't match the type of the overridden var-property \
'public abstract var foo: BarInterface defined in FooBarInterface'
如何在保持接口/数据类方法的同时解决这个问题?
【问题讨论】:
-
我猜是用
override var而不是override val吧?