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 |
此调用作用域变量的初始值 |