最新 最热

【Groovy】MOP 元对象协议与元编程 ( 方法委托 | 使用 @Delegate 注解进行方法委托 )

中 , 都是通过手动方式实现了方法委托 , Groovy 中提供了 @Delegate 注解可以直接通过一行代码实现方法委托 ;

2023-03-30
1

【Groovy】MOP 元对象协议与元编程 ( 方法委托 | 批量方法委托 )

在上一篇博客 【Groovy】MOP 元对象协议与元编程 ( 方法委托 | 正常方法调用 | 方法委托实现 | 代码示例 ) 中 , 将 StudentManager 对象的方法委托给了其内部的 student1 和 student2 成员 , 在 methodMissing 方法...

2023-03-30
1

【Groovy】MOP 元对象协议与元编程 ( 方法合成 | 动态注入方法 )

首先 , 获取 org.codehaus.groovy.runtime.HandleMetaClass 类 , 先将 this 赋值给 Student 对象 , 然后通过 Student 对象获取 metaClass ;

2023-03-30
1

【Groovy】MOP 元对象协议与元编程 ( 方法合成引入 | 类内部获取 HandleMetaClass )

在 Groovy 类中 , 如果实现了 GroovyInterceptable 接口 , 调用该 Groovy 类的任何方法都会回调 invokeMethod 方法 , 参考 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 实现 GroovyInterc...

2023-03-30
1

【Groovy】MOP 元对象协议与元编程 ( Groovy 类内部和外部分别获取 metaClass | 分析获取 metaClass 操作的字节码 | HandleMetaClass 注入方法 )

在 Groovy 脚本中 , 即 Student 外部 , 获取的 student.metaClass 类型是 org.codehaus.groovy.runtime.HandleMetaClass ;

2023-03-30
1

【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 @Mixin 注解进行方法注入 | Mixin 混合多个类优先级分析 )

在上一篇博客 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 Mixin 混合进行方法注入 ) 中 , 使用了

2023-03-30
1

【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 Mixin 混合进行方法注入 )

首先 , 定义被注入的方法 , 定义一个类 , 在类中定义被注入的方法 , 这里需要注意 , 被注入的方法没有 self 参数 , 不能访问其本身对象 , 如果需要访问本身 , 需要通过参数传递进去 ;...

2023-03-30
1

【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 分析使用 MetaClass 进行方法注入前后 mateClass 类型变化 )

注入之后 , 再次使用 println Student.metaClass 打印 Student.metaClass 内容 , 打印结果变成了

2023-03-30
1

【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 同时注入普通方法、静态方法、构造方法 )

如果要同时为 Groovy 类注入大量方法 , 使用 Category 分类 或 MetaClass 将每个方法逐个注入 , 这样操作比较繁琐 ;

2023-03-30
1

【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 MetaClass 进行方法注入普通方法 )

为该 Student 类注入一个 hello 方法 , 先获取 Student 类的 metaClass 成员 , 然后为其注入 hello 方法 , 使用 << 符号 , 后面带上一个闭包 , 即可注入方法 , 在闭包中 , delegate 就是 Student 对象 ;...

2023-03-30
1