代码之家  ›  专栏  ›  技术社区  ›  Amrmsmb

如何使用forEach和Observable

  •  1
  • Amrmsmb  · 技术社区  · 7 年前

    如下所示,我正在学习如何使用rxjava。我想知道如何使用foreach和observates。 问题是,当我使用forEach时,我收到编译错误:

    add cast to method receiver
    

    提前谢谢

    代码

    public static void main(String[] args) {
        Observable<List<Person>> observables = Observable.create(e-> {
            for(List<Person> p : Main.getPersons()) {
                e.onNext(p);
            }
            e.onComplete();
        });
         observables
        //.subscribeOn(Schedulers.newThread())//newThread
        .forEach(p->p.size())   
        .map(p->p+"..STRING")
        //.delay(5, TimeUnit.SECONDS)
        //.interval(0, 5, TimeUnit.SECONDS)
        .observeOn(Schedulers.io())
        .subscribe(new Observer() {
            @Override
            public void onComplete() {
                // TODO Auto-generated method stub
                System.out.println("onCompleted");
            }
    
            @Override
            public void onError(Throwable arg0) {
                // TODO Auto-generated method stub
    
            }
    
            @Override
            public void onNext(Object arg0) {
                // TODO Auto-generated method stub
                System.out.println("onNextFromObserver: " + arg0);
            }
    
            @Override
            public void onSubscribe(Disposable arg0) {
                // TODO Auto-generated method stub
            }
        });
    }
    
    private static <T> Observable<T> toObservable(T s) {
        return Observable.just(s);
    }
    private static List<List<Person>> getPersons() {
        return Arrays.asList(
                Arrays.asList(new Person("Sanna1", 59, "EGY"), new Person(null, 59, "EGY"), new Person("Sanna3", 59, null)),
                Arrays.asList(new Person("Mohamed1", 59, "EGY"), new Person(null, 59, "EGY")),
                Arrays.asList(new Person("Ahmed1", 44, "QTR"), new Person("Ahmed2", 44, "QTR"), new Person(null, null, "QTR")),
                        Arrays.asList(new Person("Fatma", 29, "KSA")),
                        Arrays.asList(new Person("Lobna", 24, "EGY")));
    }
    }
    
    0 回复  |  直到 7 年前