2012-04-03 57 views
2

在Guava中,如果我有一個Collection<T> - Guava中是否有任何現有的函數可以讓我輕鬆地將它轉換爲Collection<Optional<T>>番石榴:我如何將Collection <T>轉換爲Collection <Optional<T>>?

+1

在閱讀這個問題之前,我從來沒有聽說過番石榴....但是從看着API和我知道C#和Java好吧,爲什麼不會像這樣達到你的目的? Iterables.transform ,T>(收集, 新功能,整數>(){ @覆蓋 公衆可選申請(T){ 回報Optional.of (我);} }); – 2012-04-03 03:49:56

+1

我其實從來沒有用靜態方法做過泛型,而且一直以來我都用方法調用的泛型,一般來說,所以也許我的語法稍微偏離了一點,但是這就是你要找的東西? – 2012-04-03 03:51:06

回答

4

只有正常方式:

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

..although它可能會是更好的明確,嚴格的施工做到這一點。

+0

謝謝Louis。我希望這已經存在於API的某處,我錯過了它。我只是將它添加到我的成長班[StuffGuavaIsMissing.java](http://pastebin.com/wFmbw5FE) – 2012-04-03 05:33:38

+0

如果您真的想要它,請提出問題請求,但如果某件事情不像那種常見的案例對我們來說,我們經常會繼續,如果您願意,可以將它添加到您自己的實用程序中,而不是在我們不確定時將其添加到番石榴。 – 2012-04-03 14:34:14

+6

注意:'Optional.of'可能是'Optional.fromNullable',這取決於這個用戶正在嘗試做什麼。 – 2012-04-03 15:43:00

相關問題