【发布时间】:2016-11-01 18:37:42
【问题描述】:
我是 Kotlin 的新手,我正在尝试编译这段代码但没有成功(这只是我想在实际项目中做的一个例子):
abstract class Builder<T: Any, Y: Any>
class BuilderImpl() : Builder<String, Int>()
abstract class Shape<T: Any>(){
abstract var builder: Builder<T, *>
}
class Circle() : Shape<String>(){
override var builder: Builder<String, Int> = BuilderImpl()
}
我想覆盖 Circle 类中 Shape 类的 builder 属性。 Shape 类只知道 Builder 类的第一个泛型类型。第二个可以是任何类型,所以我使用 *。
当我尝试覆盖 Circle 类中的 builder 属性时,编译器会报错:
"Var-property type is 'Builder<String, Int>', which is not a type of overriden public abstract var builder: Builder<String, *>".
我也尝试过用“out Any”代替*,但没有成功。
我不知道如何编译这段代码。
【问题讨论】: