Gọi địa phương

public class InvocationLocal
extends Object

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


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

Cơ chế này hoạt động tương tự như ThreadLocal. Những biến này khác với các bản sao thông thường trong mã đó trong lệnh gọi truy cập vào một (thông qua phương thức get) có bản sao riêng, được khởi tạo độc lập của biến. InvocationLocal thực thể 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 lệnh gọi.

Mỗi lệnh 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ệnh gọi, miễn là đang thực hiện lệnh gọi và có thể truy cập vào thực thể InvocationLocal. Sau một lệnh gọi đã hoàn tất, tất cả bản sao của các thực thể cục bộ của lệnh gọi đều có thể bị hỏng tập hợp (trừ phi có các tham chiếu khác đến những bản sao này).

Xin lưu ý rằng không giống như các thực thể ThreadLocal không còn được tham chiếu trong khi vẫn đang thực hiện lệnh gọi nhưng không thu thập dữ liệu rác được. Tạo thực thể cục bộ hoặc không tĩnh do đó không được đề xuất 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 thận trọng 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 sai lầm tương tự.

Tóm tắt

Hàm khởi tạo công khai

InvocationLocal()

Phương thức 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 gọi cục bộ này.

Phương thức đượ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 lệnh gọi cục bộ này.

Hàm khởi tạo công khai

Gọi địa phương

public InvocationLocal ()

Phương thức công khai

get

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 gọi cục bộ này. Nếu biến không có giá trị cho lệnh gọi hiện tại, thì đầu tiên biến sẽ được khởi tạo với giá trị đó được lệnh gọi phương thức initialValue() trả về.

Giá trị trả về
T bản sao lệnh gọi đang thực thi của lệnh gọi cục bộ này.

Phương thức được bảo vệ

initialValue

protected T initialValue ()

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

Cách triển khai này chỉ trả về null nhưng bạn có thể thay đổi bằng cách phân loại con InvocationLocal và ghi đè phương thức này.

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