如何像在Java中一样在Kotlin中自动实现/生成方法

时间:2018-12-18 16:07:09

标签: java android android-studio kotlin

所以我对Kotlin还是很陌生。您如何在Kotlin中进行以下操作(在订阅部分中)?

animalObservable
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<String>() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(String s) {

                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onComplete() {

                }
            });

在Java中,我要做的就是键入“ new Ob”,然后按Enter。然后,它会自动生成需要实施的方法。 (以上)

这是我在Kotlin中弄清楚的唯一方法。我必须输入以下内容:“ subscribe(object:Observer {})

animalsObserve
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(object : Observer<String> {

        })

然后我可以通过执行命令N(在Mac上)来生成方法

enter image description here

我确定必须采用其他方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

您是对的:要构造一个匿名类,您应该使用object expression。因此,在您的示例中,您将按照上面的说明进行操作,即:

...
.subscribe(object : Observer<String>() {
    // Implementation of interface goes here
})

IntelliJ将以红色花样突出显示object关键字,并告诉您它没有实现该接口,因此您可以单击它并按 Alt + Enter (在Linux上),您可以选择实现Observer的成员。

或者,您可以在块内单击并使用常规快捷方式(例如,在Linux上为 Ctrl + O ),以显示您显示的“覆盖成员”对话框以上。