在Google Guava(Java)中,为什么Iterables.getFirst()和getLast()不一致?

kev*_*rpe 21 java guava

来自Google Guava JavaDocIterables:

static <T> T getFirst(Iterable<T> iterable, T defaultValue)
Run Code Online (Sandbox Code Playgroud)

- >返回第一个元素iterable或者defaultValue如果iterable为空.

static <T> T getLast(Iterable<T> iterable)
Run Code Online (Sandbox Code Playgroud)

- >返回的最后一个元素iterable.

static <T> T getLast(Iterable<T> iterable, T defaultValue)
Run Code Online (Sandbox Code Playgroud)

- >返回的最后一个元素iterabledefaultValue如果可迭代为空.

缺少一种静态方法(对我而言):

static <T> T getFirst(Iterable<T> iterable)
Run Code Online (Sandbox Code Playgroud)

- >返回第一个元素iterable.

你知道这种不一致的原因吗?

Sea*_*wen 21

因为它太简单了,无法证明辅助方法的合理性.该方法只是iterable.iterator().next()并且将具有完全类似的行为getLast().

  • 仍然,当使用像'Iterables.getLast()`这样的方法时,我假设该方法仅用于代码可读性和意图表达... (13认同)
  • 严格来说,它将是`iterable.iterator().next()`,但我同意. (3认同)