gpt4 book ai didi

java - Kotlin 传递对象类作为参数初始化

转载 作者:行者123 更新时间:2023-11-30 10:17:50 24 4
gpt4 key购买 nike

我需要将 SQLiteDatabase 类/对象作为参数传递给 execSQL 来执行。在 SQL_User 中,包含在扩展的 SQLiteOpenHelper 中......但是我如何在 DatabaseActivity

上初始化它

我想我根本不明白这是怎么回事......

class DatabaseActivity : Activity {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

val db = Sql_User(this, "Users", null, 1)

// Here I get an error on ??, anything I think could works doesn'ts
if (db != null) { Sql_User.insert( «??» , "1", "DefaultUser") }

}
}


class Sql_User : SQLiteOpenHelper {
companion object {
fun insert(p0: SQLiteDatabase?, p1: String, p2: String){ p0!!.execSQL("INSERT INTO Users ( id_user, username ) VALUES ('${p1}, '${p2}')")
}

...
}

我在该行遇到的错误,我传递的任何参数都是... Classifier SQLiteDatabase 没有伴随对象,因此必须在此处初始化

最佳答案

您的 db 变量是 SQLOpenHelper 类型,而不是 SQLiteDatabase。要从助手获取数据库,您需要调用 getWritableDatabase方法(或 kotlin 中的 writeableDatabase 属性)获取数据库。

所以对你来说,像——

 Sql_User.insert(db.writeableDatabase , "1", "DefaultUser")

关于java - Kotlin 传递对象类作为参数初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49564030/

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