InvocationLocal

public class InvocationLocal
extends Object

java.lang.Object
com.android.tradefed.invocer.logger.InvocationLocal<T>


توفر هذه الفئة متغيرات نطاق الاستدعاء.

تعمل الآلية بشكل مشابه لـ ThreadLocal . تختلف هذه المتغيرات عن نظيراتها العادية في هذا الكود، حيث أن الاستدعاء الذي يصل إلى أحد المتغيرات (عبر طريقة get الخاصة به) لديه نسخة خاصة به من المتغير تمت تهيئتها بشكل مستقل. عادةً ما تكون مثيلات InvocationLocal عبارة عن حقول ثابتة خاصة في الفئات التي ترغب في ربط الحالة بالاستدعاء.

يرتبط كل استدعاء بنسخة من متغير نطاق الاستدعاء طالما أن الاستدعاء قيد التقدم ويمكن الوصول إلى مثيل InvocationLocal . بعد اكتمال الاستدعاء، تخضع جميع نسخ مثيلات الاستدعاء المحلية لجمع البيانات المهملة (ما لم توجد مراجع أخرى لهذه النسخ).

لاحظ أنه على عكس مثيلات ThreadLocal التي لم يعد يتم الرجوع إليها أثناء استمرار الاستدعاء، لا يتم تجميع البيانات المهملة. لذلك لا يوصى بإنشاء مثيلات محلية أو غير ثابتة لأنها يمكن أن تنمو دون حدود.

تحذير: استخدم هذه الفئة بشكل مقتصد حيث أن الاستدعاءات المحلية هي متغيرات عالمية تمجد مع العديد من المخاطر نفسها.

ملخص

المقاولين العامة

InvocationLocal ()

الأساليب العامة

final T get ()

إرجاع نسخة الاستدعاء الجاري تنفيذها حاليًا لمتغير الاستدعاء المحلي هذا.

الأساليب المحمية

T initialValue ()

تُرجع "القيمة الأولية" للاستدعاء الحالي لمتغير الاستدعاء المحلي هذا.

المقاولين العامة

InvocationLocal

public InvocationLocal ()

الأساليب العامة

يحصل

public final T get ()

إرجاع نسخة الاستدعاء الجاري تنفيذها حاليًا لمتغير الاستدعاء المحلي هذا. إذا لم يكن للمتغير قيمة للاستدعاء الحالي، فستتم تهيئته أولاً إلى القيمة التي يتم إرجاعها عن طريق استدعاء الأسلوب initialValue() .

عائدات
T نسخة الاحتجاج المنفذة حاليًا من هذا الاحتجاج المحلي.

الأساليب المحمية

القيمة البدائية

protected T initialValue ()

تُرجع "القيمة الأولية" للاستدعاء الحالي لمتغير الاستدعاء المحلي هذا. سيتم استدعاء هذه الطريقة عند تنفيذ التعليمات البرمجية لأول مرة في سياق الاستدعاء للوصول إلى المتغير باستخدام طريقة get() . يتم ضمان استدعاء هذه الطريقة مرة واحدة على الأكثر لكل استدعاء.

يُرجع هذا التنفيذ ببساطة null ولكن يمكن تغييره عن طريق التصنيف الفرعي InvocationLocal وتجاوز هذه الطريقة.

عائدات
T القيمة الأولية لهذا المتغير على نطاق الاستدعاء