首页 > 解决方案 > 在 Kotlin 中使用常量填充基类成员

问题描述

如果我正在创建一个子类,我如何使用常量来填充基类中的成员而不通过构造函数传递。创建 B 的实例时,调用者永远不需要知道使用的 id,它可以是 B 类定义的一部分。这是我目前正在做的事情,无意在实例化 B 类时实际传递一个 id。

abstract class A (_id: Int) {
  val id = _id
}

class B (id: Int = 99, otherParam: String): A(id) {
  val otherParam = _otherParam
}

标签: androidkotlin

解决方案


您可以只使用常量:

class B (_otherParam: String): A(99) {
    val otherParam = _otherParam
}

此外,您A可以简单地:

abstract class A (val id: Int) 

您不需要构造函数参数。

同样适用于B

class B (otherParam: String): A(99) 

推荐阅读