我已经开始研究retrolambda 和rxjava。我自己转换了一些表达式,但其中一些我无法转换。我已将 retrolambda 添加到我的项目中。这里是示例
public Observable<ImmutableList<Repository>> getUsersRepositories() {
return githubApiService.getUsersRepositories(user.login)
.map(repositoryResponses -> {
final ImmutableList.Builder<Repository> listBuilder = ImmutableList.builder();
for (RepositoryResponse repositoryResponse : repositoryResponses) {
Repository repository = new Repository();
repository.id = repositoryResponse.id;
repository.name = repositoryResponse.name;
repository.url = repositoryResponse.url;
listBuilder.add(repository);
}
return listBuilder.build();
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
但我不知道如何转换这种代码的和平:
obs.subscribe(new Observer<List<Integer>>() {
public void onCompleted() {
System.out.println("completed");
}
public void onError(Throwable e) {
System.out.println("failure");
}
public void onNext(List<Integer> value) {
System.out.println("onnext=" + value);
}
});
最佳答案
我认为你想做这样的事情:
obs.subscribe(
(List<Integer> value) -> System.out.println("onnext=" + value),
(Throwable e) -> System.out.println("failure"),
()-> System.out.println("completed"));
您可以在 this blog 中检查 GitHub 和此示例。
关于android - 从 rx java 表达式转换为 lambda,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32250145/