มีวิธีใดบ้างเพื่อให้สามารถดำเนินการด้านล่างเป็นชุดการดำเนินการสตรีมหนึ่งชุดแทนการตรวจสอบอย่างชัดเจนว่าถ้า RecommendedProducts ว่างเปล่าจากนั้นส่งคืนรายการเริ่มต้นมิฉะนั้นจะส่งคืนรายการที่กรองหรือไม่
public List<Product> getRecommendedProducts() {
List<Product> recommendedProducts
= this.newProducts
.stream()
.filter(isAvailable)
.collect(Collectors.toList());
if (recommendedProducts.isEmpty()) {
return DEFAULT_PRODUCTS;
}
return recommededProducts;
}
4
มีอะไรผิดปกติกับรหัสที่คุณมีอยู่
—
Andy Turner
@AndyTurner เห็นด้วย รหัสนั้นดีเหมือนเดิม การปรับปรุงเดียวที่ฉันจะทำคือการใช้ตัวดำเนินการประกอบไปด้วยแทนที่จะเป็นคำสั่งif-else มันยังคงเป็นเรื่องของรสนิยมแม้ว่า
—
ETO
@ETO ไม่มีอะไรผิดปกติ แต่ฉันพยายาม / หวังว่าจะพบว่ามีวิธีการเพียงแค่ใช้ Stream APIs โดยไม่มีการตรวจสอบเงื่อนไขที่ชัดเจน ขอบคุณสำหรับการตอบกลับ - ฉันชอบคำแนะนำของผู้ประกอบการที่ประกอบไปด้วย
—
user3495691