·

Action.kt

interface Action {
    suspend fun run();
}

CustomAction.java

import kotlin.Unit;
import kotlin.coroutines.Continuation;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class CustomAction implements Action {
    @Nullable
    public Object run(@NotNull Continuation<? super Unit> $completion) {
        return null;
    }
}

大概是这样的,Action接口有一个suspend方法。然后,在一个Java类里要实现这个接口,应该是要使用这个Continuation参数来实现协程,但是我尝试了很多途径都没有找到具体用法。

Replies
1

你应该把你会出错的代码贴过来,你可以先看我的代码https://github.com/storytellerF/common-ui-list-structure/blob/master/common-ui-list-structure/app/src/androidTest/java/com/storyteller_f/common_ui_list_structure/TestRepoComposite.java 这个代码是注解生成器生成的代码,annotation processor 只能生成java代码,所以有suspend 的肯定要自己写,所以这个需求还是很常见的