RxJava: How to convert List of objects to List of another objects

后端 未结 9 467
悲哀的现实
悲哀的现实 2021-01-31 07:30

I have the List of SourceObjects and I need to convert it to the List of ResultObjects.

I can fetch one object to another using method of ResultObject:

c         


        
9条回答
  •  伪装坚强ぢ
    2021-01-31 07:51

    The Observable.from() factory method allows you to convert a collection of objects into an Observable stream. Once you have a stream you can use the map operator to transform each emitted item. Finally, you will have to subscribe to the resulting Observable in order to use the transformed items:

    // Assuming List srcObjects
    Observable resultsObjectObservable = Observable.from(srcObjects).map(new Func1() {
        @Override
        public ResultsObject call(SourceObject srcObj) {
            return new ResultsObject().convertFromSource(srcObj);
        }
    });
    
    resultsObjectObservable.subscribe(new Action1() { // at this point is where the transformation will start
        @Override
        public void call(ResultsObject resultsObject) { // this method will be called after each item has been transformed
            // use each transformed item
        }
    });
    

    The abbreviated version if you use lambdas would look like this:

    Observable.from(srcObjects)
      .map(srcObj -> new ResultsObject().convertFromSource(srcObj))
      .subscribe(resultsObject -> ...);
    

提交回复
热议问题