日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【Groovy】MOP 元对象协议与元编程 ( Expando 动态类 | 创建动态类 | 为动态类增加字段和方法 )

發布時間:2025/6/17 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Groovy】MOP 元对象协议与元编程 ( Expando 动态类 | 创建动态类 | 为动态类增加字段和方法 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、Expando 動態類簡介
  • 二、動態類創建
  • 三、為動態類增加字段和方法
  • 四、完整代碼示例





一、Expando 動態類簡介



Groovy 運行時 , 可以動態地創建一個類 , 該類稱為 " 動態類 " ;

這個類運行前并不存在 , 沒有通過 class 定義該類 , 而是在 運行時通過代碼創建的 ;

Groovy 提供了一個 groovy.util.Expando 類 , 該類專門用于創建 " 動態類 " ;


Expando 動態類原型如下 :

package groovy.util;/*** 表示一個動態可擴展的bean。*/ public class Expando extends GroovyObjectSupport {// 動態類 屬性 , 封裝在該映射集合 Map 中private Map expandoProperties;public Expando() {}public Expando(Map expandoProperties) {this.expandoProperties = expandoProperties;} }



二、動態類創建



Expando 構造函數可以接受鍵值對作為參數 ,

public class Expando extends GroovyObjectSupport {// 動態類 屬性 , 封裝在該映射集合 Map 中private Map expandoProperties;public Expando(Map expandoProperties) {this.expandoProperties = expandoProperties;} }

如果要在動態類中設置 name 屬性 , 在構造函數中傳入

name: "Tom",

參數即可 , 如果為動態類設置 hello 方法 , 在構造函數中傳入

hello: {println "Hello!"}

參數 ;

代碼示例 :

// 創建動態類 def student = new Expando(// 動態類屬性name: "Tom",// 動態類成員方法hello: {println "Hello!"} )



三、為動態類增加字段和方法



在動態類創建完畢之后 , 使用

動態類.屬性名 = 屬性值

的方式 , 為動態類增加屬性 ,

// 為動態類增加屬性 student.age = 18

使用

動態類.方法名 = {閉包}

的方式 , 為動態類增加方法 ;

// 為動態類增加方法 student.hello2 = {println "Hello2!!" }

代碼示例 :

// 創建動態類 def student = new Expando(// 動態類屬性name: "Tom",// 動態類成員方法hello: {println "Hello!"} )// 為動態類增加屬性 student.age = 18// 為動態類增加方法 student.hello2 = {println "Hello2!!" }



四、完整代碼示例



完整代碼示例 :

// 創建動態類 def student = new Expando(// 動態類屬性name: "Tom",// 動態類成員方法hello: {println "Hello!"} )// 為動態類增加屬性 student.age = 18// 為動態類增加方法 student.hello2 = {println "Hello2!!" }// 打印動態類字段 println student.name println student.age// 調用動態類方法 student.hello() student.hello2()

執行結果 :

Tom 18 Hello! Hello2!!

總結

以上是生活随笔為你收集整理的【Groovy】MOP 元对象协议与元编程 ( Expando 动态类 | 创建动态类 | 为动态类增加字段和方法 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。