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(); // こんなメソッドは無いが、こんな感じのことがやりたい

こんな感じのことがやりたいことです。