Kotlin 层次结构:在父 var 中存储子 class
Kotlin hierarchy: Storing child class in parent var
有一个名为 Shading
的父 class,它是抽象的,有一个名为 GradientShading
的子 class,在 Java 中很容易存储将子对象转换为父类型的变量:
Shading act=null;
act=new GradienShading();
在 kotlin 中我不知道该怎么做,因为这会导致编译错误:
lateinit var act: Shading
act = GradienShading()
Type mismatch. Required: Shading Found: GradienShading
我如何在 Kotlin 中实现这一点?
可能是您没有正确设置类型层次结构。您确定 Shading
实际上是 GradientShading
的超类型吗?
以下代码在我的机器上编译得很好。
open class Shading
class GradientShading: Shading()
class Example {
lateinit var act: Shading
fun test() {
act = GradientShading()
}
}
有一个名为 Shading
的父 class,它是抽象的,有一个名为 GradientShading
的子 class,在 Java 中很容易存储将子对象转换为父类型的变量:
Shading act=null;
act=new GradienShading();
在 kotlin 中我不知道该怎么做,因为这会导致编译错误:
lateinit var act: Shading
act = GradienShading()
Type mismatch. Required: Shading Found: GradienShading
我如何在 Kotlin 中实现这一点?
可能是您没有正确设置类型层次结构。您确定 Shading
实际上是 GradientShading
的超类型吗?
以下代码在我的机器上编译得很好。
open class Shading
class GradientShading: Shading()
class Example {
lateinit var act: Shading
fun test() {
act = GradientShading()
}
}