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 |