หลักการของคำอธิบายประกอบ Java
Java: ใช้คำอธิบายประกอบ, //www.vevb.com/article/101747.htm
คำอธิบายประกอบคืออะไร
คำอธิบายประกอบเรียกอีกอย่างว่าข้อมูลเมตาเช่น @Override ทั่วไปของเราและ @deprecated คำอธิบายประกอบเป็นคุณสมบัติที่แนะนำในเวอร์ชัน JDK1.5 พวกเขาจะใช้เพื่ออธิบายรหัสและสามารถใส่คำอธิบายประกอบแพ็คเกจคลาสอินเตอร์เฟสฟิลด์พารามิเตอร์วิธีการตัวแปรท้องถิ่น ฯลฯ ฟังก์ชั่นหลักของมันมีดังนี้:
คำอธิบายประกอบทั่วไปสามารถแบ่งออกเป็นสามประเภท:
หมวดหมู่หนึ่งคือคำอธิบายประกอบมาตรฐานที่มาพร้อมกับ Java รวมถึง @Override, @Deprecated และ @SuppressWarnings ซึ่งใช้เพื่อระบุว่าวิธีการบางอย่างคือการเขียนใหม่คลาสหรือวิธีการบางอย่างจะล้าสมัยและคำเตือนที่จะถูกละเว้น หลังจากทำเครื่องหมายคำอธิบายประกอบเหล่านี้แล้วคอมไพเลอร์จะตรวจสอบ
ประเภทหนึ่งคือคำอธิบายประกอบเมตา คำอธิบายประกอบ Meta เป็นคำอธิบายประกอบที่ใช้ในการกำหนดคำอธิบายประกอบรวมถึง @retention, @target, @inherited, @documented @retention ใช้เพื่อระบุขั้นตอนที่มีการเก็บคำอธิบายประกอบไว้ @Target ใช้เพื่อระบุขอบเขตของคำอธิบายประกอบที่ใช้ @Inherited ใช้เพื่อระบุว่าคำอธิบายประกอบสามารถสืบทอดได้และ @Documented ใช้เพื่อระบุว่าจะสร้างเอกสาร Javadoc หรือไม่
ประเภทหนึ่งคือคำอธิบายประกอบที่กำหนดเอง คุณสามารถกำหนดคำอธิบายประกอบตามความต้องการของคุณเองและใช้คำอธิบายประกอบเมตาเพื่อเพิ่มความคิดเห็นที่กำหนดเอง
หลักการคำอธิบายประกอบ:
มาดูวิธีการสนับสนุนคำอธิบายประกอบภายใต้ระบบ Java กลับไปที่ตัวอย่างด้านบนของคำอธิบายประกอบที่กำหนดเอง สำหรับการทดสอบคำอธิบายประกอบดังนี้ หากคุณใส่คำอธิบายประกอบคลาส ANNOTATIONTEST ค่าของการประกาศคำอธิบายประกอบสามารถรับได้ผ่าน AnnotationTest.class.getNanotation (test.class) ที่รันไทม์ จะเห็นได้จากประโยคข้างต้นว่าได้รับคำอธิบายประกอบการทดสอบจากโครงสร้างคลาสดังนั้นจึงต้องเพิ่มคำอธิบายประกอบลงในโครงสร้างคลาสในบางครั้ง
@Test ("ทดสอบ") Public Class AnnotationTest {Public Void Test () {}}จากซอร์สโค้ด Java ไปยังคลาส bytecode ทำโดยคอมไพเลอร์ คอมไพเลอร์จะแยกวิเคราะห์ซอร์สโค้ด Java และสร้างไฟล์คลาส คำอธิบายประกอบจะถูกประมวลผลโดยคอมไพเลอร์ในเวลาคอมไพล์ คอมไพเลอร์จะประมวลผลสัญลักษณ์คำอธิบายประกอบและแนบเข้ากับโครงสร้างคลาส ตามข้อกำหนดของ JVM โครงสร้างไฟล์คลาสเป็นรูปแบบที่สั่งอย่างเคร่งครัด วิธีเดียวที่จะแนบข้อมูลเข้ากับโครงสร้างคลาสคือการบันทึกลงในแอตทริบิวต์แอตทริบิวต์ของโครงสร้างคลาส เรารู้ว่าสำหรับชั้นเรียนฟิลด์และวิธีการมีโครงสร้างตารางเฉพาะของตัวเองในโครงสร้างคลาสและแต่ละรายการมีคุณสมบัติของตัวเอง สำหรับคำอธิบายประกอบขอบเขตของฟังก์ชั่นของพวกเขาอาจแตกต่างกัน พวกเขาสามารถใช้ในชั้นเรียนหรือในฟิลด์หรือวิธีการ ในเวลานี้คอมไพเลอร์จะเก็บข้อมูลคำอธิบายประกอบไว้ในแอตทริบิวต์ของชั้นเรียนฟิลด์และวิธีการตามนั้น
หลังจากรวบรวมคลาส ANNOTATIONTEST ของเราแล้วคุณสมบัติ RunTimeVisiBleannotations จะรวมอยู่ในไฟล์หมายเหตุประกอบที่สอดคล้องกัน เนื่องจากคำอธิบายประกอบนี้ถูกนำไปใช้กับคลาสคุณสมบัตินี้จึงถูกเพิ่มเข้าไปในชุดแอตทริบิวต์ของคลาส นั่นคือค่าคู่คีย์-ค่า = การทดสอบของคำอธิบายประกอบการทดสอบจะถูกบันทึก เมื่อ JVM โหลด bytecode ของไฟล์หมายเหตุประกอบค่าคุณสมบัติ runtimevisibleannotations จะถูกบันทึกลงในวัตถุคลาสของ Annotationtest ดังนั้นวัตถุการทดสอบคำอธิบายประกอบสามารถรับผ่านการทดสอบคำอธิบายประกอบ
อาจมีคำถามที่นี่วัตถุคำอธิบายประกอบการทดสอบคืออะไร? ในความเป็นจริงสาระสำคัญของคำอธิบายประกอบหลังจากที่รวบรวมเป็นอินเทอร์เฟซที่สืบทอดอินเตอร์เฟสคำอธิบายประกอบดังนั้น @Test จึงเป็น "การทดสอบส่วนต่อประสานสาธารณะขยายคำอธิบายประกอบ" เมื่อเราโทรผ่าน AnnotationTest.class.getAnnotation (test.class) JDK จะสร้างวัตถุที่ใช้อินเทอร์เฟซทดสอบผ่านพร็อกซีแบบไดนามิกและตั้งค่าคุณสมบัติ Runtimevisibleannotations ในวัตถุนี้ วัตถุนี้เป็นวัตถุคำอธิบายประกอบการทดสอบ ค่าคำอธิบายประกอบสามารถรับได้ผ่านวิธีการของค่า ()
กระบวนการทั้งหมดของกลไกการใช้คำอธิบายประกอบ Java แสดงไว้ด้านบน การดำเนินการต้องใช้ความร่วมมือของคอมไพเลอร์และ JVM
ขอบคุณสำหรับการอ่านฉันหวังว่ามันจะช่วยคุณได้ ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!