เป็นวิธีที่ดีที่สุดในการกำหนดประเภทข้อมูลใน 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
เหมาะสำหรับการกรองตามส่วนต่อประสาน