InvocationLocal

public class InvocationLocal
extends Object

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


คลาสนี้จะมีตัวแปรขอบเขตการเรียกใช้

กลไกนี้ทำงานคล้ายกับ ThreadLocal ตัวแปรเหล่านี้แตกต่างจาก คู่ฉบับปกติในโค้ดนั้นในการเรียกใช้ที่เข้าถึงแท็กหนึ่ง (ผ่านเมธอด get) มีสำเนาตัวแปรที่เริ่มต้นเป็นของตัวเองอย่างอิสระ อินสแตนซ์ InvocationLocal รายการ โดยทั่วไปแล้ว เป็นฟิลด์แบบคงที่แบบส่วนตัวในคลาสที่ต้องการเชื่อมโยงสถานะกับการเรียกใช้

การเรียกใช้แต่ละครั้งจะเชื่อมโยงกับสำเนาของตัวแปรที่กำหนดขอบเขตระดับการเรียกใช้ตราบใดที่ การเรียกใช้อยู่ระหว่างดำเนินการและเข้าถึงอินสแตนซ์ InvocationLocal ได้ หลังจาก การเรียกใช้เสร็จสมบูรณ์ สำเนาของอินสแตนซ์การเรียกใช้ในพื้นที่ทั้งหมดถือเป็นไฟล์ขยะ (เว้นแต่มีการอ้างอิงอื่นๆ ถึงสำเนาเหล่านี้)

โปรดทราบว่าจะต่างจาก ThreadLocal อินสแตนซ์ที่ไม่มีการอ้างอิงอีกต่อไปในขณะที่ การเรียกใช้ที่กำลังดำเนินการไม่ใช่ไฟล์ขยะ การสร้างอินสแตนซ์ในเครื่องหรือที่ไม่ใช่แบบคงที่ จึงไม่แนะนำให้ใช้เนื่องจากโฆษณาอาจเติบโตได้โดยไม่มีขอบเขต

คำเตือน: ใช้คลาสนี้ให้เท่าที่จำเป็นเนื่องจากท้องถิ่นที่เรียกใช้จะได้รับการสนับสนุนตัวแปรร่วมด้วย อันตรายเหมือนกันมากมาย

สรุป

ช่างก่อสร้างสาธารณะ

InvocationLocal()

วิธีการสาธารณะ

final T get()

แสดงผลสำเนาการเรียกใช้ที่เรียกใช้อยู่ของตัวแปรการเรียกใช้ภายในนี้

วิธีการป้องกัน

T initialValue()

แสดง "มูลค่าเริ่มต้น" ของการเรียกใช้ปัจจุบัน สำหรับตัวแปรการเรียกใช้ภายในนี้

ช่างก่อสร้างสาธารณะ

InvocationLocal

public InvocationLocal ()

วิธีการสาธารณะ

รับ

public final T get ()

แสดงผลสำเนาการเรียกใช้ที่เรียกใช้อยู่ของตัวแปรการเรียกใช้ภายในนี้ หาก ตัวแปรไม่มีค่าสำหรับการเรียกใช้ปัจจุบัน จะเริ่มต้นด้วยค่า แสดงผลโดยการเรียกเมธอด initialValue()

คิกรีเทิร์น
T สำเนาการเรียกใช้ที่กำลังดำเนินการอยู่ของการเรียกใช้ภายในนี้

วิธีการป้องกัน

ค่าเริ่มต้น

protected T initialValue ()

แสดง "มูลค่าเริ่มต้น" ของการเรียกใช้ปัจจุบัน สำหรับตัวแปรการเรียกใช้ภายในนี้ ช่วงเวลานี้ ระบบจะเรียกใช้เมธอดเมื่อการเรียกใช้โค้ดเป็นครั้งแรกในบริบทของการเรียกใช้ เข้าถึงตัวแปรด้วยเมธอด get() ระบบจะเรียกใช้เมธอดนี้อย่างแน่นอน ไม่เกิน 1 ครั้งต่อคำขอ

การติดตั้งใช้งานนี้จะส่งคืน null แต่สามารถเปลี่ยนได้โดยการจัดประเภทย่อย InvocationLocal และลบล้างเมธอดนี้

คิกรีเทิร์น
T ค่าเริ่มต้นสำหรับตัวแปรที่กำหนดขอบเขตการเรียกใช้นี้