เป็นวิธีที่ดีที่สุดในการกำหนดประเภทข้อมูลใน Groovy อะไร
ฉันต้องการจัดรูปแบบผลลัพธ์แตกต่างกันหากเป็นวันที่เป็นต้น
เป็นวิธีที่ดีที่สุดในการกำหนดประเภทข้อมูลใน Groovy อะไร
ฉันต้องการจัดรูปแบบผลลัพธ์แตกต่างกันหากเป็นวันที่เป็นต้น
คำตอบ:
ในการกำหนดคลาสของวัตถุให้เรียก:
someObject.getClass()
คุณสามารถย่อได้someObject.classในกรณีส่วนใหญ่ อย่างไรก็ตามหากคุณใช้ตัวเลือกนี้Mapจะพยายามเรียกคืนค่าด้วยคีย์ 'class' ด้วยเหตุนี้ฉันมักจะใช้getClass()แม้ว่ามันจะนานกว่าเล็กน้อย
หากคุณต้องการตรวจสอบว่าวัตถุใช้อินเทอร์เฟซเฉพาะหรือขยายการใช้คลาสเฉพาะ (เช่นวันที่):
(somObject instanceof Date)
หรือตรวจสอบว่าระดับของวัตถุคือว่าชั้นเฉพาะ (ไม่ subclass ของมัน) ใช้งาน:
(somObject.getClass() == Date)
Mapอินสแตนซ์
def test = {} println test.getClass() คลาส Script1 $ _run_closure1 ??
วิธี groovy ง่าย ๆ ในการตรวจสอบประเภทของวัตถุ:
somObject in Date
สามารถใช้ได้กับอินเตอร์เฟส
เพียงเพิ่มตัวเลือกอื่นในคำตอบของDónalคุณยังสามารถใช้java.lang.Object.getClass()วิธีการเดิมที่ดีได้
คุณสามารถใช้ Membership Operator isCase () ซึ่งเป็นอีกทางหนึ่ง
assert Date.isCase(new Date())
somObject instanceof Date
ควรจะเป็น
somObject instanceOf Date
instanceofควรเป็นตัวพิมพ์เล็ก
instanceofเหมาะสำหรับการกรองตามส่วนต่อประสาน