Lời gọiLocal

public class InvocationLocal
extends Object

java.lang.Object
com.android.tradefed.invoker.logger.InvocationLocal<T>


Lớp này cung cấp các biến phạm vi lệnh gọi.

Cơ chế hoạt động tương tự như ThreadLocal . Các biến này khác với các biến thông thường trong mã đó ở chỗ lệnh gọi truy cập vào một biến (thông qua phương thức get của nó) có bản sao biến được khởi tạo riêng, được khởi tạo độc lập. Các phiên bản InvocationLocal thường là các trường tĩnh riêng tư trong các lớp muốn liên kết trạng thái với một lệnh gọi.

Mỗi lệnh gọi được liên kết với một bản sao của biến trong phạm vi lệnh gọi miễn là lệnh gọi đang được tiến hành và phiên bản InvocationLocal có thể truy cập được. Sau khi lệnh gọi hoàn tất, tất cả các bản sao của phiên bản lệnh gọi cục bộ của nó sẽ bị thu gom rác (trừ khi có các tham chiếu khác đến các bản sao này tồn tại).

Lưu ý rằng không giống như các phiên bản ThreadLocal không còn được tham chiếu trong khi lệnh gọi vẫn đang được tiến hành sẽ không được thu thập rác. Do đó, việc tạo các phiên bản cục bộ hoặc không tĩnh không được khuyến khích vì chúng có thể phát triển mà không bị ràng buộc.

Cảnh báo: Hãy sử dụng lớp này một cách tiết kiệm vì lệnh gọi cục bộ là các biến toàn cục được tôn vinh với nhiều cạm bẫy tương tự.

Bản tóm tắt

Nhà thầu xây dựng công cộng

InvocationLocal ()

Phương pháp công khai

final T get ()

Trả về bản sao của lệnh gọi hiện đang thực thi của biến cục bộ lệnh gọi này.

Phương pháp được bảo vệ

T initialValue ()

Trả về "giá trị ban đầu" của lệnh gọi hiện tại cho biến cục bộ của lệnh gọi này.

Nhà thầu xây dựng công cộng

Lời gọiLocal

public InvocationLocal ()

Phương pháp công khai

lấy

public final T get ()

Trả về bản sao của lệnh gọi hiện đang thực thi của biến cục bộ lệnh gọi này. Nếu biến không có giá trị cho lệnh gọi hiện tại, thì trước tiên, biến đó sẽ được khởi tạo thành giá trị được trả về bằng lệnh gọi phương thức initialValue() .

Trả lại
T bản sao lệnh gọi hiện đang thực thi của lệnh gọi-local này.

Phương pháp được bảo vệ

giá trị ban đầu

protected T initialValue ()

Trả về "giá trị ban đầu" của lệnh gọi hiện tại cho biến cục bộ của lệnh gọi này. Phương thức này sẽ được gọi khi thực thi mã lần đầu tiên trong bối cảnh lệnh gọi truy cập vào biến bằng phương thức get() . Phương thức này được đảm bảo sẽ được gọi nhiều nhất một lần cho mỗi lần gọi.

Việc triển khai này chỉ đơn giản trả về null nhưng có thể được thay đổi bằng cách phân lớp InvocationLocal và ghi đè phương thức này.

Trả lại
T giá trị ban đầu cho biến trong phạm vi lệnh gọi này