gpt4 book ai didi

Java:如何使用 Lambda 重写——可以抛出异常

转载 作者:行者123 更新时间:2023-12-01 17:47:27 28 4
gpt4 key购买 nike

如何通过 Java Lambda 重写它?

这个问题与“Lambda表达式和泛型方法”问题不同。该问题是由于抛出异常而导致的。

public Observable<String> getUserInfo() {
return Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> emitter) throws Exception {
try {
emitter.onNext( getPlayerInfo());
emitter.onComplete();
} catch (Exception e) {
emitter.onError(e);
}
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}

当我通过普通 Lambda 重写此代码时,我收到此错误:

Incompatible types: Required: Observable <java.lang.String>. Found: Observable <java.lang.Object>.

这是我尝试过的:

public Observable<String> getUserInfo() {
return Observable.create( emitter -> {
try {
emitter.onNext(getPlayerInfo();
emitter.onComplete();
} catch (Exception e) {
emitter.onError(e);
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}

最佳答案

编译器的推理引擎无法确定Observable的类型参数,因此需要显式指定:

return Observable.<String>create( emitter -> {

关于Java:如何使用 Lambda 重写——可以抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561872/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com