如何使用RXJava / Android更改对象列表中的字段

我有一个列表myPersonList,我想填写每个项目的名称和城市.我的身份已经填满了.我可以创建一个foreach并调用FillPersonData但是我如何使用Observables呢?我知道Map()和FlatMap()有一些东西……但是我没有得到它

class Person{
   int id;
   String name;
   String city;
}

List<Person> myPersonList;

我需要做些什么来获得一个可观察的列表,其中Person数据由此函数填充:

class PersonUtil{

      public Person FillPersonData(Person person){
          ... do something to fill the Person Data...
      }
}

更新:

对不起我的错:我没有说我还需要Observable来订阅它而不是Person Class有一个名为fillPersonData()的函数…让我说我有像PersonUtil这样的东西……

所以我需要这个来返回它:

Observable<List<Person>> myObservable  = ...the Magic Code :-)

更新2:

我从frhack尝试了答案,它的工作原理.只是为了完整性,因为我在没有Lambdas的Android Studio中工作,没有Lambdas的代码:

 Observable<Person> observable =  Observable.from(personList)
            .filter(new Func1<Person, Boolean>() {

                @Override
                public Boolean call(Person person) {
                    PersonUtil.FillMailData(person);
                    return true;
                }

            });

我希望是正确的方法……如果不是……告诉我,我改变了我的Update2 !!

解决方法:

List<Person> personList = new ArrayList<Person>();
// populate personList
Observable.from(personList).forEach((person)-> {
        person.setName(name);
        person.setCity(city);
});

备用版本:

List<Person> personList = new ArrayList<Person>();
// populate personList
Observable.from(personList).forEach((person)-> p.fillPersonData() );

替代版本:

List<Person> personList = new ArrayList<Person>();
// populate personList
Observable<Person> observable =  Observable.from(personList)
   .filter((person) -> {
            person.setName(name);
           //PersonUtil.fillPersonData(person)     
            return true;
        });
 observable.forEach((pp)->System.out.println(pp));
上一篇:Mobx-React : 当前适合React的状态管理工具


下一篇:android – 使用RX进行呼叫,然后从第一次呼叫的结果进行多个并行呼叫