2012-04-03 6 views
2

Guavaの場合、私はCollection<T>を持っています - 私は簡単にそれをCollection<Optional<T>>に変換できるGuavaの既存の関数はありますか?Guava:コレクション<T>をコレクション<Optional<T>に変換するにはどうすればよいですか?

+1

私はこの質問を読む前にGuavaについて聞いたことがありません....しかし、APIを見て、私がC#とJavaを知っていて大丈夫です。 Iterables.transform 、T>(コレクション、 新しい関数、整数>(){ @Overrideパブリックオプション適用(T)(I Optional.of { リターン); }})。 –

+1

私は静的メソッドを使って実際にジェネリックを行ったことはありません。メソッド呼び出しでジェネリックを使用して以来、しばらくしていますが、私の構文は少しずれていますが、探していたものですか? –

答えて

4

のみ通常の方法:

return Collections.transform(collection, new Function<T, Optional<T>>() { 
    public Optional<T> apply(T t) { 
    return Optional.of(t); 
    } 
} 

おそらく、明示的、厳格な工事でそれを行う方が良いだろう..although。

+0

ルイありがとう。私はこれがAPIのどこかにすでに存在することを望んでいました。私はそれを逃しました。私は成長クラス[StuffGuavaIsMissing.java](http://pastebin.com/wFmbw5FE) –

+0

に追加するだけです。本当にそれが必要な場合は、問題のリクエストを提出してください。何か共通のケース私たちがよくわからないときには、必要に応じてあなたのユーティリティに追加して、それをGuavaに追加するのではなく、私たちはしばしばそれをあなたのユーティリティに追加させてくれるでしょう。 –

+6

注: 'Optional.of'は、このユーザが何をしようとしているかに応じて、' Optional.fromNullable'かもしれません。 –

関連する問題