У меня нет ошибок в журналах, но я не могу запустить отладчик внутри моего if(::db.isinitialized) condition
Пожалуйста, смотрите мои коды ниже:
MainActivity
class MainActivity : AppCompatActivity() {
lateinit var db: DatabaseCommon;
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if(::db.isInitialized) {
val dbVersion = DatabaseCommon.myInstance.dbVersion;
val dbName = DatabaseCommon.myInstance.dbName;
val tableName = DatabaseCommon.myInstance.tableName;
val name: String = DatabaseCommon.myInstance.name;
val age: String = DatabaseCommon.myInstance.age;
try{
val db = this.openOrCreateDatabase(dbName, Context.MODE_PRIVATE, null)
var query = "CREATE TABLE IF NOT EXISTS ${tableName} (${name} VARCHAR, ${age} INT(2))";
db.execSQL(query)
query = "INSERT INTO ${tableName} (${name}, ${age}) VALUES ('James', 20)";
db.execSQL(query);
Toast.makeText(applicationContext, "CREATED", Toast.LENGTH_LONG);
}catch(e: Exception) {
e.printStackTrace();
}
}
}
}
DatabaseCommon
class DatabaseCommon {
val dbVersion: Int = 1;
val dbName: String = "db_munsicians";
val tableName: String = "musicians"
val name: String = "name";
var age: String = "age";
private constructor() {}
companion object {
private lateinit var instance: DatabaseCommon;
val myInstance: DatabaseCommon
get() {
if (instance == null) {
instance = DatabaseCommon();
}
return instance;
}
}
fun returnDbClass() {
println("I was called");
}
}
Если я не поставлю if(::db.isinitialized)
, я получаю сообщение об ошибке: lateinit не был инициализирован. Пожалуйста, помогите мне узнать Kotlin, помогая мне решить эту проблему. Спасибо.