Frage

Sie wissen, etwas entspricht:

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

Enthält Lambdaj so etwas?

War es hilfreich?

Lösung

Lambdaj hat die selectUnique Methode, die eine Ausnahme ausführt, wenn mehr als ein Element den Zustand des angegebenen Hamcrest -Matchers erfüllt. Da Sie keine besondere Bedingung haben, müssen Sie einen Matcher benötigen, der immer wahr zurückgibt (es scheint mir nicht, dass Hamcrest einen solchen Match über die Schachtel bietet, aber es ist trivial, ihn zu implementieren) oder) oder) oder) oder Vielleicht möchten Sie überprüfen, ob das (einzige) Objekt in der Liste zumindest nicht null ist, sodass Sie dieses Ergebnis erzielen können mit:

selectUnique(list, Matchers.notNullValue());

Andere Tipps

Nicht ganz dasselbe, aber Java hat eine Möglichkeit, Listen (und andere Sammlungen) zu erstellen, die garantiert nur ein Element haben. Schauen Sie sich die Sammlungen an. Beachten Sie, dass diese Sammlungen unveränderlich sind (mit Eintrag bei Konstruktionen).

Guave hat an Iterables.getFirst() Methode, die genau das tut.

Wenn Sie meine verwenden können xpresso Bibliothek können Sie schreiben:

x.list(iterable).toScalar();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top