你知道,相当于:
<T> T single(List<T> list) {
assertEquals(1, list.size());
return list.get(0);
}
lambdaj是否包含类似的内容?
答案 0 :(得分:1)
lambdaj具有selectUnique方法,如果有多个项目满足给定的hamcrest匹配器表示的条件,则会抛出异常。由于您没有任何特定条件需要匹配,因此您需要一个始终返回true的匹配器(在我看来,Hamcrest不提供开箱即用的Matcher,但实现它很简单),或者也许您想检查列表中的(唯一)对象是否至少不为null,因此您可以通过以下方式实现此结果:
selectUnique(list, Matchers.notNullValue());
答案 1 :(得分:0)
不完全相同,但Java有一种方法可以创建保证只有一个元素的列表(和其他集合)。看看Collections.singleton *方法。请注意,这些集合是不可变的(在构造中提供了条目)。
答案 2 :(得分:0)
Guava有一个Iterables.getFirst()
方法可以完全实现。
答案 3 :(得分:-1)
如果您可以使用我的xpresso库,您可以写:
x.list(iterable).toScalar();