【Groovy】MOP 元对象协议与元编程 ( 通过 MetaMethod#invoke 执行 Groovy 方法 )
生活随笔
收集整理的這篇文章主要介紹了
【Groovy】MOP 元对象协议与元编程 ( 通过 MetaMethod#invoke 执行 Groovy 方法 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、通過 MetaMethod#invoke 執行 Groovy 方法
- 二、完整代碼示例
一、通過 MetaMethod#invoke 執行 Groovy 方法
已經定義 Groovy 類 Student , 并創建該類對象 ;
class Student {def name;def hello() {println "Hello ${name}"} }def student = new Student(name: "Tom")通過 MetaMethod#invoke 執行 Groovy 方法 :
首先 , 獲取 Groovy 對象的 MetaClass ,
student.getMetaClass()然后 , 調用 MetaClass#getMetaMethod 方法 獲取 MetaMethod 對象 ,
MetaMethod metaMethod = student.getMetaClass().getMetaMethod("name", null)最后 , 調用 MetaMethod#invoke 方法 , 執行獲取的 MetaMethod 對應的 Groovy 方法 ;
metaMethod.invoke(student, null)二、完整代碼示例
完整代碼示例 :
class Student {def name;def hello() {println "Hello ${name}"} }def student = new Student(name: "Tom")// 直接調用 hello 方法 student.hello()// 通過 GroovyObject#invokeMethod 調用 hello 方法 // 第二個參數是函數參數 , 如果為 void 則傳入 null student.invokeMethod("hello", null)// 獲取 元方法 MetaMethod metaMethod = student.getMetaClass().getMetaMethod("name", null) // 執行元方法 metaMethod.invoke(student, null)執行結果 :
Hello Tom Hello Tom Hello Tom總結
以上是生活随笔為你收集整理的【Groovy】MOP 元对象协议与元编程 ( 通过 MetaMethod#invoke 执行 Groovy 方法 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Groovy】Groovy 动态语言特
- 下一篇: 【报错信息】Google Play 上架