يتم تعريف اختياري على أنه فئة حاوية في Java ، أو بالأحرى ، يتم تخزين حاوية بها عنصر واحد فقط.
كائن الحاوية الذي قد يحتوي أو لا يحتوي على قيمة غير خالية.
بنية فئة اختيارية خصائص اختيارية
تحتوي الفئة الاختيارية على خصائصين:
سمة الفئة: سمة الكائن الفارغة: القيمة
يتم استخدام السمة الفارغة لتخزين كائن اختياري مع قيمة فارغة.
يتم استخدام سمة القيمة لتخزين الكائنات غير الفريدة.
طريقة اختيارية
اختياري له طريقتان للبناء ، وكلاهما يتم تعديله بواسطة الخاص.
خاص اختياري () {this.value = null ؛} private اختياري (t value) {this.value = objects.requirenonnull (value) ؛}يتم استخدام طريقة البناء بدون المعلمة لتهيئة فارغة. يتم استخدام منشئ المعلمة لتهيئة الكائنات غير الفنية.
نظرًا لأن المُنشئ يتم تعديله ليكون خاصًا ، فلا يمكن للاختياري الاتصال إلا من خلال أساليب الفصل إذا أراد إنشاء مثيله. يوفر اختياري ثلاث طرق فئة.
فارغة: إرجاع الكائن الاختياري مع قيمة فارغة: إرجاع قيمة غير خارقة للكائن الاختياري من Nullable: قيمة القيمة إرجاع الكائن الاختياري المقابل وفقًا لما إذا كانت المعلمة فارغة أم لا.
ثابت عام <T> اختياري <T> فارغ () {اختياري <T> t = (اختياري <T>) فارغ ؛ إرجاع t ؛} ثابت عام <T> اختياري <T> من (t value) {إرجاع جديد اختياري <> (value) ؛} ثابت عام <T> اختياري <T> Ofnullable (t value) {return value == null؟ فارغ (): من (القيمة) ؛}مثال مقدمة طريقة
| طريقة | نوع المعلمة | نوع العودة | يوضح | |
|---|---|---|---|---|
| يحصل | لا أحد | ر | القيمة ترمي nosucchelementexception استثناء فارغ | |
| ispresent | لا أحد | منطقية | إذا كانت القيمة لاغية ، فسيتم إرجاع خطأ | |
| ifpresent | المستهلك <؟ سوبر t> | فارغ | إذا كان للمثال الاختياري قيمة ، فاتصل بالمستهلك لذلك ، وإلا فلن تتم معالجته. | |
| فلتر | مسند <؟ سوبر t> | اختياري <T> | إذا كانت القيمة موجودة وتفي بالمسند المقدم ، يتم إرجاع كائن اختياري بما في ذلك القيمة ؛ خلاف ذلك ، يتم إرجاع كائن اختياري فارغ | |
| رسم خريطة | وظيفة <؟ سوبر تي ،؟ يمتد u> | اختياري <u> | إذا كانت القيمة موجودة ، يتم تنفيذ استدعاء وظيفة التعيين المقدمة على القيمة ، ويتم إرجاع كائن <u> الاختياري. | |
| flatmap | وظيفة <؟ Super T ، اختياري <u>> | اختياري <u> | إذا كانت القيمة موجودة ، يتم تنفيذ استدعاء وظيفة التعيين المقدم على القيمة ، وإرجاع كائن اختياري غير خارق. | |
| orelse | ر | ر | إرجاعها إذا كانت هناك قيمة ، وإلا بإرجاع قيمة افتراضية | |
| orelseget | المورد <؟ يمتد t> | ر | إرجاع القيمة إذا كانت هناك قيمة ، وإلا بإرجاع قيمة تم إنشاؤها بواسطة واجهة الموردين المحددة | |
| orelsethrow | المورد <؟ يمتد x> | <x يمتد رمي> | إرجاعها إذا كانت هناك قيمة ، وإلا يتم إلقاء استثناء تم إنشاؤه بواسطة واجهة الموردين المحددة | |