gpt4 book ai didi

java - 使用 Guava 检查是否只存在一个元素

转载 作者:搜寻专家 更新时间:2023-10-31 08:13:55 24 4
gpt4 key购买 nike

最近我需要做一个“特殊情况”场景,如果集合中只存在一个元素。检查 ...size() == 1 并使用 ...iterator.next() 进行检索看起来很难看,所以我在 home brew Collections 中创建了两种方法类:

public class Collections {
public static <T> boolean isSingleValue(Collection<T> values) {
return values.size() == 1;
}

public static <T> T singleValue(Collection<T> values) {
Assert.isTrue(isSingleValue(values));
return values.iterator().next();
}
}

几天前我发现Guava有一个方法叫Iterables.getOnlyElement .它满足了我的需要并替换了 singleValue,但我找不到 isSingleValue 的匹配项。这是设计使然吗?是否值得提出具有 Iterables.isOnlyElement 方法的功能请求?

编辑:由于投票很少,我决定在 Guava 上打开增强功能 - issue 957 .最终决议 - 'WontFix'。参数与 Thomas/Xaerxess 提供的非常相似。

最佳答案

好吧,用方法替换 values.size() == 1 不会有太多好处,除非您可以检查 null。但是,Apache Commons Collections(以及我假设的 Guava)中有一些方法可以做到这一点。

我宁愿写 if( values.size() == 1 )if( SomeHelper.size(values) == 1 )
if( SomeHelper.isSingleValue(values) ) - 前两种方法的意图要清晰得多,而且要编写的代码与第三种方法一样多。

关于java - 使用 Guava 检查是否只存在一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9988179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com