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 |
這個叫用範圍變數的初始值 |