ตัวอย่างเช่น ลองใช้วิธีหนึ่งของ StringUtils:
def isEmptyMethod = StringUtils.metaClass.getMetaMethod("isEmpty", String)
เมื่อฉันมีวิธีนี้แล้ว ฉันสามารถเรียกใช้ได้ดังนี้:
isEmptyMethod.invoke(null, 'some string')
นี่เป็นวิธีที่เหมาะสมในการเรียกใช้เมตาวิธีการแบบคงที่หรือไม่ อาร์กิวเมนต์ null ดูเหมือนจะไม่ถูกต้อง แต่ฉันไม่พบวิธีที่ "สะอาดกว่า" ในการทำเช่นนี้
แก้ไข: ฉันเห็นว่านี่เป็นหนึ่งในคำตอบสำหรับคำถามที่ cfrick likned แต่ฉันยังไม่มั่นใจเกี่ยวกับพารามิเตอร์ 'null' ...
MetaMethod.invoke(Object object, Object[] arguments)
ต้องการวัตถุ/ผู้รับมอบสิทธิ์/สิ่งนี้ ดังนั้นหากไม่มี ให้ผ่านnull
- person cfrick   schedule 21.10.2014