我已经开始研究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/

10-09 07:58
查看更多