호출 로컬
public
class
InvocationLocal
extends Object
java.lang.Object의 클래스 | |
↳ | com.android.tradefed.invoker.logger.InvocationLocal<T> |
이 클래스는 호출 범위 변수를 제공합니다.
메커니즘은 ThreadLocal
와 유사하게 작동합니다. 이러한 변수는
(get
메서드를 통해) 액세스하는 호출에서 해당 코드의 정상 대응 요소
에는 독립적으로 초기화된 변수의 사본이 있습니다. 인스턴스 InvocationLocal
개
일반적으로 상태를 호출과 연결하려는 클래스의 비공개 정적 필드입니다.
각 호출은
호출이 진행 중이며 InvocationLocal
인스턴스에 액세스할 수 있습니다.
호출이 완료되면 호출 로컬 인스턴스의 모든 복사본에 가비지가 포함됩니다.
컬렉션 (사본에 대한 다른 참조가 없는 경우)
더 이상 참조되지 않는 ThreadLocal
인스턴스와는 달리
가비지 컬렉션이 아닙니다. 로컬 또는 비정적 인스턴스 만들기
제한이 없이 확장될 수 있으므로 권장되지 않습니다.
경고: invocation-locals는 여러 가지 함정이 있습니다.
요약
공개 생성자 | |
---|---|
InvocationLocal()
|
공개 메서드 | |
---|---|
final
T
|
get()
이 호출 로컬 변수의 현재 실행 중인 호출 사본을 반환합니다. |
보호된 메서드 | |
---|---|
T
|
initialValue()
현재 호출의 '초기 값'을 반환합니다. 사용할 수 있습니다. |
공개 생성자
호출 로컬
public InvocationLocal ()
공개 메서드
get
public final T get ()
이 호출 로컬 변수의 현재 실행 중인 호출 사본을 반환합니다. 만약
변수에 현재 호출에 대한 값이 없으면 먼저
initialValue()
메서드를 호출하여 반환됩니다.
반환 값 | |
---|---|
T |
현재 실행 중인 호출의 이 호출 로컬 사본 |
보호된 메서드
initialValue
protected T initialValue ()
현재 호출의 '초기 값'을 반환합니다. 사용할 수 있습니다. 이
메서드는 호출 컨텍스트에서 코드가 처음 실행될 때 호출됩니다.
get()
메서드를 사용하여 변수에 액세스합니다. 이 메서드는
호출당 최대 한 번입니다.
이 구현은 단순히 null
를 반환하지만 InvocationLocal
을 서브클래스로 분류하고 이 메서드를 재정의하여 변경할 수 있습니다.
반환 값 | |
---|---|
T |
이 호출 범위 변수의 초깃값 |