Если вы хотите получить эквивалент того, что обычно показывают образцы Room со статическим полем Java и статическим методом получения для него, вы можете поместить эти функции в объект-компаньон вашего класса:
@Database(entities = arrayOf(Indirizzo::class, Dispositivo::class), version = 1, exportSchema = false)
abstract class WppDb : RoomDatabase() {
abstract fun DispositivoDao(): DispositivoDao
abstract fun IndirizzoDao() : IndirizzoDao
companion object {
private var INSTANCE : WppDb? = null
@JvmStatic
fun getInstance(context: Context): WppDb? {
if (INSTANCE == null) {
synchronized(WppDb::class) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
WppDb::class.java, "weather.db")
.build()
}
}
return INSTANCE
}
@JvmStatic
fun destroyInstance() {
INSTANCE = null
}
}
}
Затем вы можете вызвать WppDb.getInstance(context)
из кода Kotlin или Java. Обратите внимание на аннотации @JvmStatic
, которые делают эти вызовы приятнее в Java - без них вам придется использовать WppDb.INSTANCE
, чтобы получить объект-компаньон, а затем вызвать функцию getInstance
для этого.