Objects.requireNonNullElse()
احصل على قيمة غير فارغة مع قيمة افتراضية واضحة، لا حاجة للعامل الثلاثي.
مقارنة الكود
✕ Java 8
String name = input != null
? input
: "default";
// easy to get the order wrong
✓ Java 9+
String name = Objects
.requireNonNullElse(
input, "default"
);
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
نية واضحة
اسم الدالة يصف بالضبط ما تفعله.
قيمة افتراضية آمنة من null
القيمة الافتراضية نفسها تُفحص أيضاً من null.
مقروء
أفضل من العامل الثلاثي لمنطق null-أو-افتراضي البسيط.
الأسلوب القديم
تحقق ثلاثي من null
الأسلوب الحديث
requireNonNullElse()
منذ JDK
9
الصعوبة
مبتدئ
دعم JDK
Objects.requireNonNullElse()
متاح
متاح على نطاق واسع منذ JDK 9 (سبتمبر 2017)
كيف يعمل
يُرجع requireNonNullElse الوسيطة الأولى إذا لم تكن فارغة وإلا الثانية. القيمة الافتراضية نفسها لا يمكن أن تكون فارغة — ترمي NPE إذا كلتاهما فارغتان مما يكشف الأخطاء مبكراً.
توثيق ذو صلة