呼叫本地
public class InvocationLocal
extends Object
java.lang.Object | |
↳ | com.android.tradefed.invoker.logger.InitationLocal<T> |
此類提供呼叫範圍變數。
此機制的運作方式與ThreadLocal
類似。這些變數與其正常對應變數的不同之處在於,存取變數(透過其get
方法)的呼叫中的程式碼具有其自己的、獨立初始化的變數副本。 InvocationLocal
實例通常是類別中希望將狀態與呼叫關聯起來的私人靜態欄位。
只要呼叫正在進行且InvocationLocal
實例可訪問,每個呼叫都與呼叫範圍變數的副本關聯。呼叫完成後,其所有呼叫本地實例的副本都將受到垃圾回收(除非存在對這些副本的其他引用)。
請注意,與ThreadLocal
實例不同的是,在呼叫仍在進行時不再被引用的實例不會被垃圾回收。因此,不建議建立本地或非靜態實例,因為它們可能會無限增長。
警告:請謹慎使用此類,因為呼叫局部變數是美化的全域變量,但也存在許多相同的缺陷。
概括
公共構造函數 | |
---|---|
InvocationLocal () |
公共方法 | |
---|---|
final T | get () 傳回目前正在執行的呼叫的此呼叫局部變數的副本。 |
受保護的方法 | |
---|---|
T | initialValue () 傳回此呼叫局部變數的目前呼叫的“初始值”。 |
公共構造函數
呼叫本地
public InvocationLocal ()
公共方法
得到
public final T get ()
傳回目前正在執行的呼叫的此呼叫局部變數的副本。如果變數對於目前呼叫沒有值,則首先將其初始化為呼叫initialValue()
方法傳回的值。
退貨 | |
---|---|
T | 目前正在執行的呼叫的本機呼叫的副本。 |
受保護的方法
初始值
protected T initialValue ()
傳回此呼叫局部變數的目前呼叫的“初始值”。當在呼叫上下文中執行的程式碼第一次使用get()
方法存取變數時,將呼叫此方法。此方法保證每次調用最多調用一次。
此實作僅傳回null
,但可以透過子類化InvocationLocal
並重寫此方法來變更。
退貨 | |
---|---|
T | 此呼叫範圍變數的初始值 |