在这个 Android 的数据库代码中不实现抽象方法怎么可能调用?

How is it possible to call without implementing an abstract method in this Android's DB code?

我正在学习 Android,我是 DB 的新手。我正在尝试使用 Room 库来使用 DB.

我正在查看示例代码,但有些地方我不明白。

就是调用AppDatabase abstract classabstract method而不执行

至少据我所知,抽象类不能被实例化

但我很好奇它是如何调用的,以及如何使用返回值。 (与 Kotlin 相同。)

我对 JAVAKotlin 有误吗?

ToDoDao.interface

@Dao // Data Access Object
interface ToDoDao {
    @Query("SELECT * FROM ToDo")
    abstract fun getAll(): List<ToDo>

    @Insert
    void insert(ToDo todo)

    @Update
    void update(ToDo todo)

    @Delete
    void delete(ToDo todo)
}

AppDatabase.class

@Database(entities = [Todo.class], version = 1)
abstract class AppDatabase extends RoomDatabase {
    public abstract void TodoDao todotDao();
}

Main.class

AppDatabase db = Room.databaseBuilder(this, AppDatabase.class, "todo-db").build();

mResultTextView.setText(db.todoDao().getAll().toString); // THIS

为了简单起见,我们不会像这样构建数据库,this and that 是您可以参考构建数据库和访问它的示例

val DB = AppDatabase.getInstance(context).ToDoDao ()