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