从 Java 代码访问 kotlin Suspend 函数

BRD*_*oid 5 android kotlin android-room kotlin-coroutines

我有 Room 数据库接口,它是一个 Kotlin 文件,因为我不希望调用在主线程上运行,所以我使用 kotlin Suspend。我怎样才能使用java中的挂起函数

我有两种方法,我想插入一个User和另一个来检索用户

这些是我在 java 文件中遇到的错误

在此输入图像描述

代码

Room Dao接口

用户道

@Dao
interface UserDao {

    fun getAllUsersAsync(): CompletableFuture<List<User>> =
        GlobalScope.future { getAllUsers() }

    @Query("SELECT * FROM user")
    suspend fun getAllUsers(): List<User>

    @Insert
    suspend fun insertUser(user: User): Long
}
Run Code Online (Sandbox Code Playgroud)

Java代码

private Long addUser(com.i6systems.in2plane.AppDatabase.User user) {
    return userDao.insertUser(user);
}

private List<com.i6systems.in2plane.AppDatabase.User> getUsers () {
    return userDao.getAllUsersAsync();
}
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助

谢谢R