كيفية استخدام واجهة المستخدم في Java؟

Kyfyt Astkhdam Wajht Almstkhdm Fy Java



في جافا ، ' مستهلك ”تمثل الواجهة عملية تستقبل مُدخلاً منفردًا وتقوم ببعض الإجراءات عليها دون إرجاع نتيجة. كما يوفر طريقة مرنة لتحديد العمليات المخصصة التي يمكن استخدامها في البرمجة الوظيفية مثل تعبيرات lambda. توضح هذه المدونة كيفية تنفيذ واجهة المستخدم في Java.

كيفية استخدام واجهة المستخدم في Java؟

ال ' مستهلك ”تقدم الواجهة التغليف أو السلوك الذي يمكن تمريره وتنفيذه في مواقع مختلفة في البرنامج. يعزز السلوك القابل لإعادة الاستخدام والذي يمكن تطبيقه على مدخلات مختلفة دون تكرار الكود. تتكون واجهة المستخدم من طريقتين هما ' وثم() ' و ' يقبل() '.







قم بزيارة الأمثلة أدناه لفهم كلتا الوظيفتين مع أمثلة الترميز:



مثال 1: استخدام طريقة 'andThen ()'



يمكن للمطور أن يسلسل عدة ' مستهلك 'تمامًا باستخدام' وثم() ' طريقة. إنها ترجع ' مستهلك 'الذي يؤدي تشغيل' مستهلك ' مثال. بعد ذلك يتم تنفيذ العمليات القادمة / اللاحقة ' مستهلك ' مثال. إنها الطريقة الافتراضية المستخدمة على نطاق واسع لعملية ' تعبير '.





بناء جملة ' وثم() 'تم إدراجها أدناه:

وثم ( مستهلك < ؟ سوبر تي > بعد )



ال ' وثم() 'الطريقة التي تجمع بين المستهلك الحالي' ممتاز 'مع مستهلك آخر' بعد '. وينفذ عملية المستهلك الحالي أولاً ، يليها تشغيل المستهلك المقدم.

دعونا نسير من خلال برنامج لفهم أفضل:

استيراد java.util.ArrayList ؛
استيراد java.util.LinkedList ؛
استيراد java.util.List ؛
استيراد java.util.function.Consumer ؛

جذر الطبقة العامة {
العامة ثابت الفراغ الرئيسي ( سلاسل السلسلة [ ] )
{
// إنشاء الطريقة الرئيسية
مستهلك < قائمة < عدد صحيح > > الضرب = dataEle - >
{
ل ( int j = 0 ؛ ي < حجم البيانات ( ) ؛ ي ++ ) {
مجموعة البيانات ( ي 5 * dataEle.get ( ي ) ) ؛
}
} ؛
// المستهلك لعرض قائمة الأعداد الصحيحة
مستهلك < قائمة < عدد صحيح > >
مطبوعات = dataEle - > dataEle.stream ( ) .forEach ( ك - > System.out.print ( ك + '' ) ) ؛

قائمة < عدد صحيح > dataEle = قائمة صفيف جديدة < عدد صحيح > ( ) ؛
dataEle.add ( 4 ) ؛
dataEle.add ( 7 ) ؛
dataEle.add ( 12 ) ؛
dataEle.add ( 16 ) ؛
تتكاثر ثم بعد ذلك ( مطبوعات ) .يقبل ( البيانات ) ؛
}
}

شرح الكود أعلاه:

  • لأول مرة ' مستهلك '،' لينكدليست 'والأدوات المساعدة ذات الصلة في ملف Java. بعد ذلك ، الفصل الرئيسي بالاسم ' جذر ' أنشئ.
  • بعد ذلك ، أنشئ واجهة 'مستهلك' من قائمة الأنواع المسماة ' تتضاعف 'وضبطها على قدم المساواة مع' ArrayList 'التي سيتم إنشاؤها أدناه.
  • يستخدم ' ل 'حلقة تتكرر حتى طول' ArrayList ' اسم الشيئ ' البيانات '، ويضاعف كل عنصر من عناصر البيانات في' البيانات ' مع ' 5 '.
  • بعد ذلك ، ثانية ' مستهلك ”يتم إنشاء واجهة تقوم بطباعة كل عنصر على وحدة التحكم يتم استرداده بعد عملية الضرب من التدفق.
  • الآن ، قم بإنشاء وإضافة عناصر بيانات وهمية في ' البيانات ArrayList.
  • في النهاية ، ' وثم() 'يتم استدعاء طريقة' يقبل() 'الطريقة التي تقبل' البيانات 'ArrayList وإرجاع نتيجة' تتضاعف ' في تسلسل.

بعد انتهاء مرحلة التنفيذ:

توضح اللقطة أن مهمة الضرب قد اكتملت باستخدام ' وثم() 'طريقة' مستهلك ' واجهه المستخدم.

مثال 2: استخدام طريقة 'Accept ()'

ال ' يقبل() 'الطريقة هي طريقة وظيفية لـ' مستهلك ' واجهه المستخدم. يقبل وسيطة واحدة من النوع ' تي 'ويقوم بتنفيذ العمليات المحددة / المطلوبة عليه. قيمة ال ' باطل 'يجب ألا تقدم لها لأنها لا تقبل' باطل 'القيم وإنشاء استثناء.

فيما يلي بناء الجملة الخاص به:

قبول باطل ( < قوي > تي قوي > ر )

في الصيغة أعلاه ، ' ر 'هي الحجة الوحيدة التي يتم من خلالها تشغيل عمليات معينة.

دعنا نزور أدناه كتلة التعليمات البرمجية لفهم أفضل:

استيراد java.util.ArrayList ؛
استيراد java.util.LinkedList ؛
استيراد java.util.List ؛
استيراد java.util.function.Consumer ؛

// استيراد المرافق في جافا ملف
جذر الطبقة العامة {
العامة ثابت الفراغ الرئيسي ( سلاسل السلسلة [ ] ) // إنشاء الطريقة الرئيسية
{
مستهلك < عدد صحيح > توزيع = ك - > System.out.println ( ك ) ؛
disp. قبول ( 255 ) ؛
مستهلك < قائمة < عدد صحيح > > الضرب = dataEle - >
{
ل ( int k = 0 ؛ ك < حجم البيانات ( ) ؛ k ++ )
مجموعة البيانات ( ك، 5 * dataEle.get ( ك ) ) ؛
} ؛

مستهلك < قائمة < عدد صحيح > >
مطبوعات = dataEle - > dataEle.stream ( ) .forEach ( ي - > System.out.print ( ي + '
'
) ) ؛
قائمة < عدد صحيح > dataEle = قائمة صفيف جديدة < عدد صحيح > ( ) ؛
dataEle.add ( 4 ) ؛
dataEle.add ( 7 ) ؛
dataEle.add ( 12 ) ؛
dataEle.add ( 16 ) ؛
// تنفيذ التعديل باستخدام قبول ( )
تتكاثر ( البيانات ) ؛
// تنفيذ dispList باستخدام قبول ( )
طباعة تقبل ( البيانات ) ؛
}
}

شرح الكود أعلاه:

  • لأول مرة ' مستهلك 'واجهة باسم' ديس 'الذي يعرض المعلمات المتوفرة على وحدة التحكم ، دون إجراء أي عملية.
  • الآن ، ' يقبل() 'يتم استدعاء طريقة' ديس 'المستهلك ، وقيمة' 255 'إلى هذه الطريقة.
  • بعد ذلك ، ' مستهلك 'الواجهة التي تستخدم' ل 'حلقة لتطبيق الضرب على كل عنصر من عناصر ArrayList المسمى' البيانات '.
  • بعد ذلك ، أنشئ واحدًا آخر ' مستهلك 'واجهة لعرض' البيانات 'العناصر الناتجة بعد تطبيق الضرب الذي يأتي من التدفق.
  • بعد ذلك ، قم بتهيئة ArrayList ' البيانات 'مع عناصر البيانات الوهمية واستخدام' يقبل() 'مع' تتضاعف ' واجهه المستخدم.
  • في النهاية ، اتصل بـ ' يقبل() 'باستخدام' مطبوعات ”لعرض النتيجة بعد تطبيق الضرب على سجل وحدة التحكم.

بعد انتهاء التنفيذ:

توضح اللقطة أعلاه أنه تم استدعاء واجهات متعددة للمستهلكين واحدة تلو الأخرى باستخدام ' يقبل() ' طريقة.

مثال 3: معالجة استثناء لما بعد الوظيفة

ينشأ الاستثناء عندما ' بعد 'وظيفة' وثم() 'يحتوي أسلوب' على ' يقبل() ' طريقة. يؤدي هذا إلى إنشاء واجهة تحتفظ بالبيانات لتتم معالجتها بواسطة واجهات باستخدام طرق واجهة المستخدم كما هو موضح أدناه:

استيراد java.util.ArrayList ؛
استيراد java.util.LinkedList ؛
استيراد java.util.List ؛
استيراد java.util.function.Consumer ؛

جذر الطبقة العامة {
العامة ثابت الفراغ الرئيسي ( سلاسل السلسلة [ ] )
{
مستهلك < قائمة < عدد صحيح > > تتضاعف = dataEle - >
{
ل ( int j = 0 ؛ ي < = dataEle.size ( ) ؛ ي ++ )
مجموعة البيانات ( ي 5 * dataEle.get ( ي ) ) ؛
} ؛
// المستهلك لعرض قائمة الأعداد الصحيحة
مستهلك < قائمة < عدد صحيح > >
مطبعة = dataEle - > dataEle.stream ( ) .forEach ( أنا - > System.out.print ( أنا + '' ) ) ؛
قائمة < عدد صحيح > dataEle = قائمة صفيف جديدة < عدد صحيح > ( ) ؛
dataEle.add ( 4 ) ؛
dataEle.add ( 7 ) ؛
dataEle.add ( 12 ) ؛
dataEle.add ( 16 ) ؛
يحاول {
طباعة ثم بعد ذلك ( تتضاعف ) .يقبل ( البيانات ) ؛
}
يمسك ( استثناء ه ) {
System.out.println ( 'استثناء: ' + و ) ؛
}
}
}

شرح كتلة الكود أعلاه:

  • لأول مرة ' مستهلك 'يتم إنشاء الواجهة التي ببساطة' 5 'أعداد صحيحة مع عناصر البيانات الموجودة في ArrayList المتوفرة.
  • التالي ، الثاني ' مستهلك 'يتم إنشاء واجهة لعرض كل عنصر من عناصر البيانات في ArrayList الذي يتم استلامه بواسطة الدفق.
  • بعد ذلك ، يتم إنشاء ArrayList وتهيئته باستخدام قيم نوع عدد صحيح وهمي.
  • ثم ' يحاول 'حيث يتم استخدام' وثم() 'يتم استدعاء طريقة' مطبعة ' واجهه المستخدم.
  • يتسبب في ' IndexOutOfBoundsException ' بسبب ال ' ل 'تم تجاوز حد تكرار الحلقة ، والذي يتم حله بواسطة' يمسك ' حاجز.

بعد انتهاء مرحلة التنفيذ:

توضح اللقطة أنه تم إنشاء IndexOutOfBoundsException بواسطة المترجم.

خاتمة

ال ' مستهلك ”توفر الواجهة طريقة لتعريف السلوك القابل لإعادة الاستخدام وتنفيذ الإجراءات على بيانات الإدخال دون إرجاع نتيجة. إنها تتكون من ' يقبل() ' و ' وثم() ' طُرق. غالبًا ما يتم استخدامه لمهام معالجة البيانات ، حيث يحتاج المستخدمون إلى تنفيذ إجراء على كل عنصر من عناصر المجموعة أو الدفق. هذا كل شيء عن استخدام وتنفيذ واجهة المستهلك في Java.