4

你知道,相当于:

<T> T single(List<T> list) {
  assertEquals(1, list.size());
  return list.get(0);
}

lambdaj 是否包含类似的东西?

4

4 回答 4

1

lambdaj具有selectUnique方法,如果有多个项目满足给定 hamcrest Matcher 表示的条件,则该方法会引发异常。由于您没有要匹配的任何特定条件,因此您需要一个始终返回 true 的 Matcher(在我看来,hamcrest 并没有提供开箱即用的 Matcher,但实现它很简单),或者也许您想检查列表中的(唯一)对象是否至少不为空,因此您可以通过以下方式实现此结果:

selectUnique(list, Matchers.notNullValue());
于 2011-01-05T10:16:55.767 回答
0

不完全一样,但 Java 有一种方法可以创建保证只有一个元素的列表(和其他集合)。看看 Collections.singleton* 方法。请注意,这些集合是不可变的(在构造中提供了条目)。

于 2011-01-04T19:01:13.387 回答
-1

Guava有一种Iterables.getFirst()方法可以做到这一点。

于 2011-01-04T19:03:52.450 回答
-1

如果您可以使用我的xpresso库,您可以编写:

x.list(iterable).toScalar();
于 2015-06-11T01:25:18.807 回答