Observable<T>の T を取り出す方法
RxJava なんですが、
Observable<String> s = Observable.from("hoge");
s.subscribe((str) -> {
System.out.println(str);
});
この文字列 "hoge" を取り出すスマートなやり方は何かありますか?
- インスタンス変数経由はちょっとダサい
- final String[] 経由もいまいちダサい
2015/1/18 14:34頃追記
質問の仕方とサンプルがまずかったです。
Observable<String> s = getS3object.flatMap(obj -> {
return Observable.create(observer -> {
new Thread(() -> {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(obj.getObjectContent()));
String line;
while ((line = reader.readLine()) != null) {
observer.onNext(line);
}
} catch (Throwable e) {
observer.onError(e);
}
observer.onCompleted();
}).start();
});
}).reduce((acc, x) -> acc + "\n" + x);
return s.get(); // こんなメソッドは無いが、こんな感じのことがやりたい
こんな感じのことがやりたいことです。