Apakah ada cara sehingga hal-hal di bawah ini dapat dilakukan sebagai satu set operasi aliran, bukannya memeriksa secara eksplisit apakah recommendedProducts kosong lalu mengembalikan daftar default yang lain mengembalikan daftar yang difilter ?
public List<Product> getRecommendedProducts() {
List<Product> recommendedProducts
= this.newProducts
.stream()
.filter(isAvailable)
.collect(Collectors.toList());
if (recommendedProducts.isEmpty()) {
return DEFAULT_PRODUCTS;
}
return recommededProducts;
}
java
collections
java-8
java-stream
optional
pengguna3495691
sumber
sumber
Jawaban:
Anda dapat mencoba ini:
sumber
Meskipun Anda dapat mencapai tujuan Anda menggunakan
Optional
, saya masih akan memilih operator ternary tua biasa.Dalam kasus khusus ini jauh lebih masuk akal dan meningkatkan keterbacaan:
sumber
Ya dengan menggunakan
Optional
sumber