2011-10-20 10 views
19

Da Google Guava JavaDoc for Iterables:In Google Guava (Java), perché Iterables.getFirst() e getLast() sono incoerenti?

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

-> Restituisce il primo elemento in iterable o defaultValue se l'iterabile è vuoto.

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

-> Restituisce l'ultimo elemento di iterable.

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

-> Restituisce l'ultimo elemento di iterable o defaultValue se l'iterabile è vuoto.

Un metodo statico non è presente (a me):

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

-> Restituisce il primo elemento di iterable.

Conosci il motivo di questa incoerenza?

risposta

19

Perché è troppo semplice giustificare un metodo di supporto. Il metodo sarebbe solo iterable.iterator().next() e avrebbe un comportamento esattamente analogo a getLast().

+3

Strettamente parlando sarebbe 'iterable.iterator(). Next()', ma sono d'accordo. –

+0

Ah, naturalmente, digitato troppo velocemente. Lo aggiusterò. –

+11

Tuttavia, quando utilizzo metodi come 'Iterables.getLast()', suppongo che il metodo sia presente solo per la leggibilità del codice e l'espressione intent ... –

Problemi correlati