InvocationLocal
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 gọi.
Cơ chế hoạt động tương tự như ThreadLocal
. Các biến này khác với các đối tác bình thường của chúng ở chỗ mã trong một lệnh gọi truy cập một (thông qua phương thức get
của nó) có bản sao riêng, được khởi tạo độc lập của biến. Các cá thể InvocationLocal
thường là các trường tĩnh riêng tư trong các lớp muốn kết hợp trạng thái với một lời gọi.
Mỗi lời gọi được liên kết với một bản sao của một biến trong phạm vi lời gọi miễn là lời gọi đang diễn ra và thể hiện InvocationLocal
có thể truy cập được. Sau khi một lời gọi hoàn tất, tất cả các bản sao của các bản sao gọi cục bộ của nó sẽ được thu gom rác (trừ khi tồn tại các tham chiếu khác đến các bản sao này).
Lưu ý rằng không giống như các trường hợp ThreadLocal
không còn được tham chiếu trong khi lệnh gọi vẫn đang diễn ra 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: Sử dụng lớp này một cách tiết kiệm vì lệnh gọi-local là các biến toàn cục được đánh giá cao với nhiều cạm bẫy giống nhau.
Bản tóm tắt
Các nhà xây dựng công cộng | |
---|---|
InvocationLocal () |
Phương pháp công khai | |
---|---|
final T | get () Trả về bản sao lệnh gọi hiện đang thực thi của biến cục bộ-lệnh gọi này. |
Các 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ộ-lệnh gọi này. |
Các nhà xây dựng công cộng
InvocationLocal
public InvocationLocal ()
Phương pháp công khai
lấy
public final T get ()
Trả về bản sao 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ời gọi hiện tại, thì trước tiên nó được khởi tạo thành giá trị được trả về bằng lời gọi phương thức initialValue()
.
Lợi nhuận | |
---|---|
T | bản sao của lời gọi hiện tại đang thực thi của lời gọi cục bộ này. |
Các 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ộ-lệnh gọi này. Phương thức này sẽ được gọi vào lần đầu tiên mã thực thi trong ngữ cảnh của lời 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ỉ trả về null
nhưng có thể được thay đổi bằng cách phân loại con InvocationLocal
và ghi đè phương thức này.
Lợi nhuận | |
---|---|
T | giá trị ban đầu cho biến trong phạm vi yêu cầu này |