gpt4 book ai didi

kotlin - 在 Kotlin 中将变量传递到父级的构造函数中

转载 作者:行者123 更新时间:2023-12-02 13:08:38 26 4
gpt4 key购买 nike

我正在尝试将变量从子类传递到父类的构造函数。

父类的构造函数由(Context!, String!, SQLiteDatabase.CursorFactory!, Int)组成。

我可以轻松做到

class TodoListDBHandler(context: Context, databaseName: String, factory: SQLiteDatabase.CursorFactory, databaseVersion: Int): 
SQLiteOpenHelper(context, databaseName, factory, databaseVersion)

但我想直接在类中指定数据库名称和版本,而不是每次调用构造函数时都指定它,因为我可能会犯错误。

我当前的代码:

class TodoListDBHandler(context: Context, databaseName: String, factory: SQLiteDatabase.CursorFactory, databaseVersion: Int): 
SQLiteOpenHelper(context, databaseName, factory, databaseVersion) {

val databaseFileName = "todoList.db"
val databaseVersion = 1

override fun onCreate(db: SQLiteDatabase?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}

override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
}

如上所述,我希望能够将我指定的变量传递给父级的构造函数。

编辑:这是所需的代码,但在 Java 中

public TodoListDBHandler(Context context, SQLiteDatabase.CursorFactory factory) {
// databaseFileName and databaseVersion are already specified inside the class
super(context, databaseFileName, factory, databaseVersion)
}

最佳答案

您可以直接在父类(super class)构造函数中传递常量参数。

class TodoListDBHandler(context: Context, factory: SQLiteDatabase.CursorFactory)
: SQLiteOpenHelper(context, "todoList.db", factory, 1) {

override fun onCreate(db: SQLiteDatabase) {
}

override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
}
}

关于kotlin - 在 Kotlin 中将变量传递到父级的构造函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55677577/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com