واجهت وظيفة رد الاتصال مرة أخرى ، وهذه المرة أخطط للكتابة ومشاركتها.
وظيفة رد الاتصال SO ، أو طريقة رد الاتصال في اللغة الموجهة للكائن ، ببساطة التحدث ، إنها وظيفة تسمى في وقت معين (يحدث الحدث).
لمزيد من التفاصيل: إنها دالة A ، كمعلمة ، يتم تمريرها إلى وظيفة أخرى B ، ثم يتم استدعاء B بواسطة B في وقت ما.
يمكن أن يكون هناك شك في وظيفة أخرى.
نعم ، يمكنك بالفعل استدعاء وظيفة أخرى في جسم الوظيفة. يمكن فقط استدعاء الوظيفة B فقط استدعاء الوظيفة.
دعنا نتحدث عن وظيفة رد الاتصال. هي الكلمات الرئيسية في الحدث ؛ يجب أن أفعل Android الآن ، لذلك ما زلت لا أستطيع التخلي عن Java ، واليوم واجهت مشكلة وظيفة رد الاتصال هذه ، التي واجهتها من Java. من السهل وفهم إدراك رد الاتصال ، لكن جافا ، لا أعتقد ذلك ، وإلا فلن أكتب هذه المدونة.
حسنًا ، استمر في القول ، تحقيق طريقة الاسترداد في Java. تركيز هذه المدونة هو جافا. في Java ، يتم تنفيذ طريقة رد الاتصال من خلال واجهة الاقتراض.
"يتم تعيين المرجع إلى الكائن الذي تم إنشاؤه بواسطة الفئة التي تنفذ واجهة معينة إلى متغير الواجهة في عبارة الواجهة ، بحيث يمكن لمتغير الواجهة استدعاء طريقة تنفيذ تنفيذ الواجهة."
جولة جدا ، توضيح موجز:
هناك واجهة ، هناك طريقة في الواجهة (هذه الطريقة هي الاتصال مرة أخرى):
واجهة callbackInterface {void callbackMethod () ؛} نحن نعلم أنه لا يمكن استخدام كائنات الواجهة مباشرة ، لأن الطرق الموجودة في الداخل لم تتحقق. لذا ابحث عن فئة لتنفيذ هذه الواجهة.
لذا أضف فئة الآن لتنفيذ هذه الواجهة:
واجهة callbackInterface {void callbackmethod () ؛} class callbackClass تنفذ callbackInterface {Override public voidmetho d () {system.out.println ("hello") ؛}}حسنًا ، الخطوة الأخيرة: قم بتعيين كائن ينفذ الفئة التي تنفذ الواجهة إلى متغير الواجهة للبيان (كتبت في طريقة ، ثم أضف نوعًا من الصدفة في الخارج):
الفئة العامة callbackTest {Interface CallbackInterface {void callbackMethod () ؛} class callbackClass تنفذ callbackinterface {e public void callbackmethod () {system.out.println ("hello") ؛} ) ؛الآن يمكنك الاتصال والمحاولة:
اختبار الفئة العامة {public static void main (string [] art) {new CallbackTest ().إذا لم يكن هناك حادث ، فسأخرج بنجاح مرحبًا ، على أي حال ، أنا هنا.
بعد قراءة المثال ، ماذا أفعل؟ ، ولأن Java لا تستطيع نقل الطريقة كمعلمة ، يتعين علينا وضع طريقة رد الاتصال هذه في الواجهة (لماذا لا تكون فئة؟ ليس فئة مجردة؟ بدلاً من الواجهة؟ واجهة بنفسك وحل هذه المشكلة بنفسك). إذا كانت هناك واجهة ، فسيتم تنفيذها بواسطة الفصل. إذا فهمت هذا ، فهناك تركيز ، وهو تعدد الأشكال.
بعبارة واحدة أخرى ، يمكن وضع أي فئة تنفذ واجهة CallbackInterface هنا وراء جديد (أي المهمة): ما يلي (أي المهمة):
الفئة العامة CallbackTest {Interface CallbackInterface {void CallbackMethod () ؛} Class CallbackClass تنفذ CallbackInterface {e public void callbackmethod () {system.out.println ("Hello") ؛ لمحاكاة الحوادث ، لا توجد قيمة عملية ، شيء منطقي عام. يتم تنفيذ "الدعوة" و "استدعاء وظيفة رد الفعل." = وحدة تحكم جديدة (CBC) ؛في النهاية ، غالباً ما يتم مواجهته في Android.
ما سبق هو فهم واستخدام وظائف استرداد الأفراد.