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 |
ค่าเริ่มต้นสำหรับตัวแปรที่กำหนดขอบเขตการเรียกใช้นี้ |