【问题标题】:In Google Guava (Java), why are Iterables.getFirst() and getLast() inconsistent? [duplicate]在 Google Guava (Java) 中,为什么 Iterables.getFirst() 和 getLast() 不一致? [复制]
【发布时间】:2011-10-20 07:25:28
【问题描述】:

来自谷歌Guava JavaDoc for Iterables

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的第一个元素。

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

【问题讨论】:

    标签: java guava


    【解决方案1】:

    因为证明辅助方法的合理性太简单了。该方法只是iterable.iterator().next(),其行为与getLast() 完全相同。

    【讨论】:

    • 严格来说应该是iterable.iterator().next(),但我同意。
    • 啊当然,打字太快了。我会解决的。
    • 不过,当使用像Iterables.getLast() 这样的方法时,我会假设该方法只是为了代码可读性和意图表达......
    猜你喜欢
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2016-03-24
    相关资源
    最近更新 更多