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