android - 如何在kotlin中定义一个只有一个带有body的构造函数的类?
问题描述
我想定义一个只有一个带有 body 的构造函数的类。当我设置类的参数时,我无法定义主构造函数的主体。我希望这个类只有一个构造函数。
敌人的例子
我有一个扩展 CursorWrapper 的类。此类具有需要超类实现的参数。我需要一个带有一个参数的构造函数:
class wrapper(cursoe: Cursor): CursoreWrapper {
// i need to call super(cursor). But where?
}
解决方案
如果你想调用 cursor,这意味着你的CursorWrapper
(这里显然是错字)至少是一个抽象类,而不是一个接口。
从你的问题来看,它也接收cursor
(另一个错字)作为参数,所以我们得到这样的东西:
open class CursorWrapper(cursor: Cursor)
现在,要调用此构造函数,您只需在从类继承时调用它:
class Wrapper(cursor: Cursor): CursorWrapper(cursor) // <- this is your super(cursor)
现在让我们假设您还CursorWrapper
需要在构造过程中调用另一个函数。
open class CursorWrapper(cursor: Cursor) {
fun bla() {
// You want to call this for some reason as super.bla()
}
}
您可以init()
为此使用块。
class Wrapper(cursor: Cursor): CursorWrapper(cursor) {
// i need to call super(cursor). But where?
init {
super.bla()
}
}
推荐阅读
- html - Bootstrap4 导航栏切换无法正常工作
- python - 部分初始化的模块“smtplib”没有属性“SMTP”(很可能是由于循环导入)
- python - python 3.6,sqlite OperationalError:靠近“to”:语法错误
- python - np.select 而不是 for while 循环
- c++ - 将文件读入 C++ 一个“数组”对象(不是数组)
- c# - C# Entity Framework - 为什么使用匿名类型而不是类对象时查询要快得多?
- python-3.x - python中3d绘图中的线条
- javascript - 如何在 HTML 中更改页面的背景颜色?
- python - 处理数据框中的列表时的好习惯?
- qt - 如果函数 raise()、activeWindow() 和其他函数不起作用,我如何将 QFileDialog 提升到前台?