استبدل تحققات null المتداخلة بخط أنابيب Optional.
مقارنة الكود
✕ Java 8
String city = null;
if (user != null) {
Address addr = user.getAddress();
if (addr != null) {
city = addr.getCity();
}
}
if (city == null) city = "Unknown";
✓ Java 9+
String city = Optional.ofNullable(user)
.map(User::address)
.map(Address::city)
.orElse("Unknown");
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
قابل للتسلسل
كل خطوة .map() تتعامل مع null بشفافية.
تدفق خطي
اقرأ من اليسار إلى اليمين بدلاً من كتل if المتداخلة.
محمي من NPE
null مُعالَجة في كل خطوة — لا انهيار ممكن.
الأسلوب القديم
تحققات null متداخلة
الأسلوب الحديث
خط أنابيب Optional
منذ JDK
9
الصعوبة
مبتدئ
دعم JDK
تسلسل Optional
متاح
متاح منذ JDK 8+ (محسَّن في 9+)
كيف يعمل
Optional.map() يتسلسل عبر القيم القابلة للإلغاء مع دوارة قصيرة عند أول null. orElse() يوفر القيمة الافتراضية. يُزيل هذا تحقق null هرمي الشكل.
توثيق ذو صلة