2011-10-20 21 views
19

從谷歌Guava JavaDoc for Iterables在Google Guava(Java)中,爲什麼Iterables.getFirst()和getLast()不一致?

static <T> T getFirst(Iterable<T> iterable, T defaultValue) 

- >如果迭代爲空返回iterabledefaultValue的第一要素。

static <T> T getLast(Iterable<T> iterable) 

- >返回iterable的最後一個元素。

static <T> T getLast(Iterable<T> iterable, T defaultValue) 

- >如果迭代爲空,則返回的iterabledefaultValue最後一個元素。

一個靜態方法是缺少(對我來說):

static <T> T getFirst(Iterable<T> iterable) 

- >返回iterable的第一要素。

你知道這種不一致的原因嗎?

回答

19

因爲它太簡單,無法證明輔助方法的合理性。該方法僅爲iterable.iterator().next(),並且具有與getLast()完全相似的行爲。

+3

嚴格地說,它會是'iterable.iterator()。next()',但我同意。 –

+0

啊,當然輸入得太快了。我會解決這個問題。 –

+11

不過,當使用像'Iterables.getLast()'這樣的方法時,我會假設該方法僅用於代碼可讀性和意圖表達式。 –

相關問題