私はrxjavaの新機能です。私は結果を反復することによってrxjavaのリストを取得しようとしています。私はtoList()のような演算子を試しましたがうまくいきません。以下はうまくいきます。しかし、リアクションの視点からより良い方法があるのだろうか?だから、rxjavaでリストを取得する方法は何ですか?
db.loadData().map(new Func1<RealmResults<Data>, List<String>>() {
@Override
public List<String> call(RealmResults<Data> Datas) {
List<String> companies = new ArrayList<String>(5);
for (Company company : Datas.get(0).getCompanies()) {
companies.add(company.getName());
}
return companies;
}
}).subscribe(new Action1<List<String>>() {
@Override
public void call(List<String> strings) {
showCompanyDialog(strings);
}
});
、(道をブロッキング)会社名のリストを「フラット化」を取得するために私はそれが問題の一部ではないですけど、多分皆さんはRetrolambdaが役立つでしょう。これはjava 5、6、7用のJava 8 lambdaのバックポートです。https://github.com/orfjackal/retrolambda – Pato94
Retrolambdaには1つのマイナスがあります。自動的に正しいタイプが追加されるわけではありません。あなたがRxJavaを学んでいるとき、何かを書くときにあなたは狂ってしまいます。あなたは最初に入力と出力のパラメータを知る必要があります。 Func1またはFunc2インターフェイス。 私はretrolambdaを試みましたが、その場合からの使用を決断しませんでした。今、私がRxJavaをよく知っているときは、次のプロジェクトでそれを試してみましょう。 –