Iterables为 getLast
public static <T> T getLast(Iterable<T> iterable);
public static <T> T getLast(Iterable<T> iterable, @Nullable T defaultValue);
但只有一个用于 getFirst
public static <T> T getFirst(Iterable<T> iterable, @Nullable T defaultValue);
是否有任何破坏对称性的设计/实现原因?
最佳答案
我认为重点是没有理由使用 getFirst(iterable)
,因为这可以通过 iterable.iterator().next()
来完成。 Guava 做了一个很好的尝试来保持 API 很小,因此没有添加可以/应该以其他方式轻松完成的事情。
另一方面,目前还没有一种机制来测试可迭代对象是否为空,如果是则返回默认值而不是第一个值。因此,getFirst(iterable, default)
.
此外,没有简单的方法来获取最后一个元素,因此 getLast(iterable)
和 getLast(iterable, default)
关于java - 为什么没有 getFirst(iterable) 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8473826/