使用 rxJava 搜索编辑文本。如何转换代码片段?

Search edit text using rxJava. How to convert snippet of code?

我刚刚复制了 java 中的代码片段并使用 ide 自动转换为 kotlin, 但这是我的错误: https://imgur.com/a/nHrVkDq

disposable.add(
                publishSubject
                        .debounce(300, TimeUnit.MILLISECONDS)
                        .distinctUntilChanged()
                        .switchMapSingle(new Function<String, Single<List<Contact>>>() {
                            @Override
                            public Single<List<Contact>> apply(String s) throws Exception {
                                return apiService.getContacts(null, s)
                                        .subscribeOn(Schedulers.io())
                                        .observeOn(AndroidSchedulers.mainThread());
                            }
                        })
                        .subscribeWith(observer));

你能帮我把它转换成 kotlin 吗?

它应该是这样的:

        disposable.add(
                publishSubject
                        .debounce(300, TimeUnit.MILLISECONDS)
                        .distinctUntilChanged()
                        .switchMapSingle { s ->
                            apiService.getContacts(null, s)
                                    .subscribeOn(Schedulers.io())
                                    .observeOn(AndroidSchedulers.mainThread())
                        }
                        .subscribeWith(observer))

您的 Function 必须来自 import io.reactivex.rxjava3.functions.Function