【发布时间】:2017-06-11 07:10:15
【问题描述】:
我有两个班级 Entity 和 Account
abstract class Entity(
var id: String? = null,
var created: Date? = Date()) {
constructor(entity: Entity?) : this() {
fromEntity(entity)
}
fun fromEntity(entity: Entity?): Entity {
id = entity?.id
created = entity?.created
return this;
}
}
和
data class Account(
var name: String? = null,
var accountFlags: Int? = null
) : Entity() {
constructor(entity: Entity) : this() {
super(entity)
}
}
这给了我错误
Super 不是表达式,它只能用在 一个点“。”
为什么我不能这样做?
下面会通过编译错误,但不知道是否正确。
constructor(entity: Entity) : this() {
super.fromEntity(entity)
}
【问题讨论】:
-
您可以在此处找到如何调用超级 ctor 的规则:kotlinlang.org/docs/reference/classes.html#inheritance。简而言之,如果超类有一个主构造函数,则必须从基类的所有构造函数中调用它。
-
constructor(entity: Entity) : super(entity) -
@zsmb13 你能分享一些代码吗?
-
@Miha_x64 我已经试过了,它给了
Primary constructor call is expected。
标签: kotlin