InvocationLocal

public class InvocationLocal
extends Object

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


此類別提供叫用範圍變數。

機制的運作方式與 ThreadLocal 類似。這些變數與程式碼中的一般變數不同,因為在透過 get 方法存取其中一個變數的呼叫中,這些變數會擁有各自獨立初始化的副本。InvocationLocal 例項通常是類別中的私人靜態欄位,用於將狀態與叫用作業建立關聯。

只要叫用程序正在進行,且可存取 InvocationLocal 例項,每個叫用都會與叫用範圍變數的副本相關聯。叫用完成後,叫用本機執行個體的所有副本都會受垃圾收集影響 (除非這些副本有其他參照)。

請注意,與 ThreadLocal 例項不同,在呼叫仍在進行時,不再參照的例項不會遭到垃圾收集。因此,我們不建議建立本機或非靜態例項,因為這些例項可能會無限擴充。

警告:請謹慎使用這個類別,因為呼叫本機是經過美化的全域變數,具有許多相同的陷阱。

摘要

公用建構函式

InvocationLocal()

公用方法

final T get()

傳回目前執行的叫用作業對此叫用作業本機變數的副本。

保護方法

T initialValue()

傳回此叫用本機變數的目前叫用「初始值」。

公用建構函式

InvocationLocal

public InvocationLocal ()

公用方法

get

public final T get ()

傳回此叫用本機變數目前執行的叫用副本。如果變數在目前叫用中沒有值,系統會先將其初始化為呼叫 initialValue() 方法時傳回的值。

傳回
T 目前執行的叫用內容的這個叫用內容本機的副本。

受保護的方法

initialValue

protected T initialValue ()

傳回此叫用本機變數的目前叫用「初始值」。當在呼叫的結構定義中執行程式碼時,如果程式碼首次存取使用 get() 方法的變數,就會叫用此方法。此方法保證每次呼叫最多會叫用一次。

這個實作方式只會傳回 null,但您可以透過建立 InvocationLocal 的子類別並覆寫這個方法,來變更這個實作方式。

傳回
T 這個叫用範圍變數的初始值