InvocationLocal

public class InvocationLocal
extends Object

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


Class ini menyediakan variabel cakupan pemanggilan.

Mekanismenya beroperasi mirip dengan ThreadLocal. Variabel ini berbeda dengan kode biasanya dalam pemanggilan yang mengakses salah satu variabel (melalui metode get) memiliki salinan variabel sendiri yang diinisialisasi secara independen. Instance InvocationLocal biasanya merupakan kolom statis pribadi dalam class yang ingin mengaitkan status dengan pemanggilan.

Setiap pemanggilan dikaitkan dengan salinan variabel cakupan pemanggilan selama pemanggilan sedang berlangsung dan instance InvocationLocal dapat diakses. Setelah pemanggilan selesai, semua salinan instance lokal pemanggilan akan dikenai pengumpulan sampah (kecuali jika ada referensi lain ke salinan ini).

Perhatikan bahwa tidak seperti instance ThreadLocal yang tidak lagi direferensikan saat pemanggilan masih berlangsung, instance tersebut tidak di-garbage collection. Oleh karena itu, pembuatan instance lokal atau non-statis tidak direkomendasikan karena dapat tumbuh tanpa batas.

Peringatan: Gunakan class ini seperlunya karena lokalitas pemanggilan adalah variabel global yang dimuliakan dengan banyak jebakan yang sama.

Ringkasan

Konstruktor publik

InvocationLocal()

Metode publik

final T get()

Menampilkan salinan variabel lokal pemanggilan yang sedang dieksekusi.

Metode yang dilindungi

T initialValue()

Menampilkan "nilai awal" pemanggilan saat ini untuk variabel lokal pemanggilan ini.

Konstruktor publik

InvocationLocal

public InvocationLocal ()

Metode publik

get

public final T get ()

Menampilkan salinan variabel lokal pemanggilan yang sedang dieksekusi. Jika variabel tidak memiliki nilai untuk pemanggilan saat ini, variabel tersebut pertama kali diinisialisasi ke nilai yang ditampilkan oleh panggilan ke metode initialValue().

Hasil
T salinan pemanggilan yang sedang dieksekusi dari lokal pemanggilan ini.

Metode yang dilindungi

initialValue

protected T initialValue ()

Menampilkan "nilai awal" pemanggilan saat ini untuk variabel lokal pemanggilan ini. Metode ini akan dipanggil saat kode pertama kali dieksekusi dalam konteks pemanggilan mengakses variabel dengan metode get(). Metode ini dijamin akan dipanggil paling banyak sekali per pemanggilan.

Implementasi ini hanya menampilkan null, tetapi dapat diubah dengan membuat subclass InvocationLocal dan mengganti metode ini.

Hasil
T nilai awal untuk variabel cakupan pemanggilan ini