关于Groovy里面元编程(MetaProgramming)的一点总结
来源:互联网 发布:网页美工属于web什么 编辑:程序博客网 时间:2024/06/10 07:37
Groovy的元编程有两种方式,EMC(支持为类的某个实例或所有实例添加动态行为,主要是依托delegate),CATEGORY支持为特定的一些实例动态添加类行为,并且能够很好的集成目前java中存在的工具类方法。具体如以下代码所示:
EMC方式:
// 为所有对象添加动态行为
String.metaClass.shout = {
->
return delegate.toUpperCase()
}
println "Hello MetaProgramming".shout()
// output HELLO METAPROGRAMMING
// 为单个对象添加动态行为
def message="Message"
message.metaClass .shout={
->
delegate.toUpperCase()
}
println message.shout()
// output MESSAGE
CATEGORY:
class MetaTest extends GroovyTestCase{
void testCategory(){
String message = "Hello"
use(StringHelper){
assertEquals "HELLO", message.shout()
assertEquals "GOODBYE", "goodbye".shout()
}
shouldFail{
message.shout()
"foo".shout()
}
}
}
class StringHelper{
static String shout(String self){
return self.toUpperCase()
}
}
- 关于Groovy里面元编程(MetaProgramming)的一点总结
- 关于元编程(Metaprogramming)
- 关于模板元编程的一点反思
- 基于引用的元编程(Metaprogramming with Quotations)
- 关于C#里面socket编程的一点理解
- 关于JS里面创建对象的一点总结
- 关于linux串口编程的一点总结
- 菜鸟编程 关于函数的一点总结
- TMP(Template metaprogramming)模板元编程的起手程序:编译期计算阶乘
- Groovy元编程MOP(ExpandoMetaClass:EMC)的应用场景
- 《C++ Template Metaprogramming》附录A——预处理元编程
- 《C++ Template Metaprogramming》附录A——预处理元编程
- 《C++ Template Metaprogramming》附录A——预处理元编程
- 《C++ Template Metaprogramming》附录A——预处理元编程
- 《C++ Template Metaprogramming》附录A——预处理元编程
- 《C++ Template Metaprogramming》附录A——预处理元编程
- 《C++ Template Metaprogramming》附录A——预处理元编程
- Ruby元编程技术(Ruby Metaprogramming techniques)
- java实现远程桌面监控
- 用OutLook发手机短信
- string,char,char*,char a[], sizeof,strlen(),str.length()...
- 1stOpt——世界领先的非线性曲线拟合,综合优化分析计算软件平台
- strlen与sizeof的区别
- 关于Groovy里面元编程(MetaProgramming)的一点总结
- VIM使用系列之一——配置VIM下编程和代码阅读环境
- 特殊符号
- 抽象类和接口的区别,例子经典
- 豆瓣FM-Hacker——豆瓣FM播放列表补全计划
- Strategy学习笔记
- 2011年9月的困惑
- 小菜鸟报道
- How to use map (STL)?-