Jordi:
Je voudrais construire un Sort
objet en utilisant ce Optional
code de -comme:
private Sort buildSort(Collection<String> fields) {
fields.stream()
.map(this::buildOrder)
.collect(Sort.unsorted(), ????, ????);
}
buildOrder
est:
private Order buildOrder(String field) {
if (field.startsWith("-")) {
return Order.desc(field.substring(1));
}
else {
return Order.asc(field);
}
}
Je dois retourner un Sort.unsorted()
si le flux est vide, ou de combiner chaque Sort
objet.
Objet Trier a une and
méthode qui signifie la construction et les commandes concaténer.
Sort.by(sort1)
.and(sort2)...
Donc, j'ai besoin que:
if (stream is empty) then
return Sort.unsorted
else
return foreach item in stream:
Sort.by(item).and(item2).and(item3)...
Des classes:
org.springframework.data.domain.Sort
org.springframework.data.domain.Sort.Order
REMARQUE
Je dois flux api-utilisation!
Michael :
Je crois que cela devrait fonctionner. Le second map
convertit chaque Order
lui est propre Sort
. L'accumulateur et combinateur puis juste ajouter Sorts
ensemble.
return fields.stream()
.map(this::buildOrder)
.map(Sort::by)
.collect(Sort::unsorted, Sort::and, Sort::and);