返回rxAndroid中对象的ArrayList

时间:2015-12-22 17:14:25

标签: java android reactive-programming rx-java rx-android

我想定期运行一个方法,以便返回自定义对象的ArrayList。这是我的代码段,

    subscribe = Observable.interval(5, TimeUnit.SECONDS)
            .map(new Func1<Long, ArrayList<Item>>() {

                @Override
                public ArrayList<Item> call(Long aLong) {
                    return new ArrayList<Item>(aLong.intValue());
                }
            });

然而,这会产生错误

  Observable中的

map(rx.functions.Func1<? super T, ? extends R>)无法应用于(anonymous rx.functions.Func1<java.lang.Long, java.util.ArrayList<com.example.Item>>)

当返回值为ArrayList<String>时,此方法正常。我不明白这里的问题是什么。是不允许使用自定义对象?

1 个答案:

答案 0 :(得分:1)

您未在地图上订阅,订阅后即可获得订阅。这是展示它的示例代码。

  Observable<ArrayList<Item>> observable = Observable.interval(5, TimeUnit.SECONDS)
            .map(new Func1<Long, ArrayList<Item>>() {

                @Override
                public ArrayList<Item> call(Long aLong) {
                    return new ArrayList<Item>(aLong.intValue());
                }
            });
    Subscription subscription = observable.subscribe(new Action1<ArrayList<Item>>() {
        @Override
        public void call(ArrayList<Item> items) {
            //Do something with list items here
        }
    });