在一个房间道方法中包含方法体

Including method body in a room Dao method

@Insert
void insert(User user);

上面的方法取自 Room Dao class 并将给定的用户插入数据库。它没有正文,但我认为插入所需的代码是在编译时生成的。

现在,如果我像下面这样添加正文,它会失去插入用户的功能吗?或者它同时插入用户和 运行 foo ?

@Insert
void insert(User user){
   foo(); //stuff
}

Dao 类 是最常用的接口。

您不能在接口中添加实现(主体)。

有关接口的更多信息:https://docs.oracle.com/javase/tutorial/java/concepts/interface.html

您可以将其抽象化,但没有多大意义,因为不会发生插入。如果 insert 方法本身不是抽象的,它已经有一个实现并且 Room 会忽略它。据我测试,它不起作用。