Esiste un modo per cui il seguito può essere eseguito come un insieme di operazioni di flusso, invece di verificare esplicitamente se il prodotto consigliato è vuoto, quindi restituire l'elenco predefinito altrimenti restituire l'elenco filtrato ?
public List<Product> getRecommendedProducts() {
List<Product> recommendedProducts
= this.newProducts
.stream()
.filter(isAvailable)
.collect(Collectors.toList());
if (recommendedProducts.isEmpty()) {
return DEFAULT_PRODUCTS;
}
return recommededProducts;
}