调用本地
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 | 此调用范围变量的初始值 |