Yêu cầuCục bộ
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 trong mã đó trong một lời gọi truy cập một (thông qua phương thức get
của nó) có bản sao biến được khởi tạo độc lập, riêng. 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 một lệnh gọi hoàn tất, tất cả các bản sao của các phiên bản 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).
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 gom 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 nghị 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ì các 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 giống nhau.
Bản tóm tắt
nhà thầu công cộng | |
---|---|
InvocationLocal () |
Phương thức công khai | |
---|---|
final T | get () Trả về bản sao của lệnh gọi cục bộ đang được thực thi 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ộ lệnh gọi này. |
nhà thầu công cộng
Yêu cầuCục bộ
public InvocationLocal ()
Phương thức công khai
lấy
public final T get ()
Trả về bản sao của lệnh gọi cục bộ đang được thực thi này. Nếu biến không có giá trị cho lần 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 một lệnh gọi phương thức initialValue()
.
trả lại | |
---|---|
T | bản sao của lệnh gọi hiện đang thực hiện của lệnh gọi cục bộ 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ộ lệnh gọi này. Phương thức này sẽ được gọi trong lần đầu tiên thực thi mã 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 lớp con InvocationLocal
và ghi đè phương thức này.
trả lại | |
---|---|
T | giá trị ban đầu cho biến phạm vi gọi này |