zip rxjava 运算符无法解析方法订阅

zip rxjava operator cannot resolve method subscribe

我想通过网络发送多个请求,这 tutorial 有帮助,但我被困在后半部分。 似乎我应该 return 来自 onSubscribe,onNext,... 的值 (OrderValues) 因为应用函数 returns 一个值。但是....,onNext return默认无效。 有什么帮助吗?这是我的一段代码

Observable<Restaurant> orderRestaurant= IdentityClient.getAPIService()
        .getRestaurantById(restaurantId)
        .subscribeOn(Schedulers.newThread())
        .observeOn(AndroidSchedulers.mainThread());

    Observable<Menu> orderMenu= IdentityClient.getAPIService()
        .getMenuById(menuId)
        .subscribeOn(Schedulers.newThread())
        .observeOn(AndroidSchedulers.mainThread());

    Observable<User> orderUser= IdentityClient.getAPIService()
        .getUserById(userId)
        .subscribeOn(Schedulers.newThread())
        .observeOn(AndroidSchedulers.mainThread());

    Observable<OrderValues> combineValues=Observable.zip(orderRestaurant, 
    orderMenu, orderUser,
       new Function3<Restaurant, Menu, User, OrderValues>() {
   @Override
   public OrderValues apply(Restaurant restaurant, Menu menu, User user) 
    throws Exception {
       return new OrderValues(restaurant,menu,user);
   }
I get an error here "cannot resolve method 'subscribe anonymous 
org.reactivestreams.Subscriber(....OrderValues)
   }).subscribe(new Subscriber<OrderValues>() {
   @Override
   public void onSubscribe(Subscription s) {

   }

   @Override
   public void onNext(OrderValues orderValues) {

   }

   @Override
   public void onError(Throwable t) {

   }

   @Override
   public void onComplete() {

   }
   });

我假设您使用的是 RxJava 2。

使用 Observer 而不是 Subscriber。也不要将结果分配给一个新的 Observable(你称之为 combineValues)。

private void myMethod() {
    Observable.zip(orderRestaurant, orderMenu, orderUser, new Function3<Restaurant, Menu, User, OrderValues>() {
                @Override
                public OrderValues apply(@NonNull Restaurant restaurant, @NonNull Menu menu, @NonNull User user) throws Exception {
                    return new OrderValues(restaurant, menu, user);
                }
            }).subscribe(new Observer<OrderValues>() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(OrderValues orderValues) {

                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onComplete() {

                }
            });
        }
    }