قدمت Java فئة جديدة اختيارية في jdk8. إنها فئة نهائية عامة وتستخدم للتعامل مع NullPointerException في تطبيق Java. يجب عليك استيراد حزمة java.util لاستخدام هذه الفئة. ويوفر الطرق التي تستخدم للتحقق من وجود قيمة لمتغير معين.
طرق فئة جافا الاختيارية
طُرق | وصف |
---|---|
ثابت عام اختياري فارغ () | تقوم بإرجاع كائن اختياري فارغ. لا توجد قيمة لهذا الاختياري. |
ثابت عام اختياري (قيمة T) | تقوم بإرجاع اختياري بالقيمة الحالية غير الخالية المحددة. |
ثابت عام اختياري ofNullable (قيمة T) | تقوم بإرجاع اختياري يصف القيمة المحددة، إذا لم تكن خالية، وإلا فسيتم إرجاع اختياري فارغ. |
الحصول على T العام () | إذا كانت هناك قيمة في هذا الخيار الاختياري، فسيتم إرجاع القيمة، وإلا فسيتم طرح NoSuchElementException. |
المنطقية العامة موجودة () | وترجع صحيحًا إذا كانت هناك قيمة موجودة، وإلا فستكون خاطئة. |
الفراغ العام ifPresent (المستهلك المستهلك) | في حالة وجود قيمة، قم باستدعاء المستهلك المحدد بالقيمة، وإلا فلا تفعل شيئًا. |
مرشح اختياري عام (المسند المسند) | إذا كانت هناك قيمة، وكانت القيمة تتطابق مع المسند المحدد، فقم بإرجاع اختياري يصف القيمة، وإلا قم بإرجاع اختياري فارغ. |
خريطة اختيارية عامة (مخطط الوظائف) | في حالة وجود قيمة، قم بتطبيق وظيفة التعيين المتوفرة عليها، وإذا كانت النتيجة غير فارغة، قم بإرجاع اختياري يصف النتيجة. وإلا قم بإرجاع اختياري فارغ. |
خريطة مسطحة اختيارية عامة (Function super T,Optional mapper) | في حالة وجود قيمة، قم بتطبيق وظيفة التعيين ذات المحمل الاختياري المتوفرة عليها، وقم بإرجاع تلك النتيجة، وإلا قم بإرجاع اختياري فارغ. |
T عام أو آخر (T أخرى) | تقوم بإرجاع القيمة إذا كانت موجودة، وإلا فإنها تُرجع قيمة أخرى. |
T orElseGet العام (المورد آخر) | تقوم بإرجاع القيمة إذا كانت موجودة، وإلا فإنها تستدعي أخرى وتعيد نتيجة هذا الاستدعاء. |
T العام أوElseThrow(استثناء الموردSupplier) يرمي X يمتد Throwable | تقوم بإرجاع القيمة المضمنة، إذا كانت موجودة، وإلا فسيتم إنشاء استثناء بواسطة المورد المقدم. |
القيمة المنطقية العامة تساوي (Object obj) | يشير إلى ما إذا كان بعض الكائنات الأخرى 'يساوي' هذا الاختياري أم لا. يعتبر الكائن الآخر متساويًا إذا:
|
رمز التجزئة العام () | تقوم بإرجاع قيمة رمز التجزئة للقيمة الحالية، إن وجدت، أو إرجاع 0 (صفر) في حالة عدم وجود قيمة. |
سلسلة عامة إلى سلسلة () | تقوم بإرجاع تمثيل سلسلة غير فارغ لهذا الاختياري المناسب لتصحيح الأخطاء. تنسيق العرض التقديمي الدقيق غير محدد وقد يختلف بين التطبيقات والإصدارات. |
مثال: برنامج Java بدون استخدام اختياري
في المثال التالي، نحن لا نستخدم فئة اختيارية. ينتهي هذا البرنامج بشكل غير طبيعي ويطرح استثناء nullPointerException.
public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); } }
انتاج:
Exception in thread 'main' java.lang.NullPointerException at lambdaExample.OptionalExample.main(OptionalExample.java:6)
لتجنب الإنهاء غير الطبيعي، نستخدم فئة اختيارية. في المثال التالي، نستخدم الاختياري. لذلك، يمكن تنفيذ برنامجنا دون أن يتعطل.
مثال اختياري لـ Java: إذا لم تكن القيمة موجودة
import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; Optional checkNull = Optional.ofNullable(str[5]); if(checkNull.isPresent()){ // check for value is present or not String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); }else System.out.println('string value is not present'); } }
انتاج:
string value is not present
مثال اختياري لـ Java: إذا كانت القيمة موجودة
import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE';// Setting value for 5th index Optional checkNull = Optional.ofNullable(str[5]); if(checkNull.isPresent()){ // It Checks, value is present or not String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); }else System.out.println('String value is not present'); } }
انتاج:
java optional class example
مثال اختياري آخر لجافا
import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE'; // Setting value for 5th index Optional checkNull = Optional.ofNullable(str[5]); checkNull.ifPresent(System.out::println); // printing value by using method reference System.out.println(checkNull.get()); // printing value by using get method System.out.println(str[5].toLowerCase()); } }
انتاج:
JAVA OPTIONAL CLASS EXAMPLE JAVA OPTIONAL CLASS EXAMPLE java optional class example
مثال على الطرق الاختيارية لجافا
import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE'; // Setting value for 5th index // It returns an empty instance of Optional class Optional empty = Optional.empty(); System.out.println(empty); // It returns a non-empty Optional Optional value = Optional.of(str[5]); // If value is present, it returns an Optional otherwise returns an empty Optional System.out.println('Filtered value: '+value.filter((s)->s.equals('Abc'))); System.out.println('Filtered value: '+value.filter((s)->s.equals('JAVA OPTIONAL CLASS EXAMPLE'))); // It returns value of an Optional. if value is not present, it throws an NoSuchElementException System.out.println('Getting value: '+value.get()); // It returns hashCode of the value System.out.println('Getting hashCode: '+value.hashCode()); // It returns true if value is present, otherwise false System.out.println('Is value present: '+value.isPresent()); // It returns non-empty Optional if value is present, otherwise returns an empty Optional System.out.println('Nullable Optional: '+Optional.ofNullable(str[5])); // It returns value if available, otherwise returns specified value, System.out.println('orElse: '+value.orElse('Value is not present')); System.out.println('orElse: '+empty.orElse('Value is not present')); value.ifPresent(System.out::println); // printing value by using method reference } }
انتاج:
Optional.empty Filtered value: Optional.empty Filtered value: Optional[JAVA OPTIONAL CLASS EXAMPLE] Getting value: JAVA OPTIONAL CLASS EXAMPLE Getting hashCode: -619947648 Is value present: true Nullable Optional: Optional[JAVA OPTIONAL CLASS EXAMPLE] orElse: JAVA OPTIONAL CLASS EXAMPLE orElse: Value is not present JAVA OPTIONAL CLASS EXAMPLE