groovy1.1虽然还没有发布正式的release,但是动态创建方法,属性,构造函数及静态方法的特性已经在svn版本中实现了,其官方文档也已经发布ExpandoMetaClass,详细示例请参考官方文档,这里摘录一点文档的示例,先饱饱眼福 :),呵呵groovyers也不需要羡慕javascript ,ruby等的动态增加方法特性了.
  给String动态增加swapCase方法
java 代码
 
  1. String.metaClass.swapCase = {->  
  2.       def sb = new StringBuffer()  
  3.       delegate.each {  
  4.            sb << (Character.isUpperCase(it as char) ? Character.toLowerCase(it as char) :   
  5.                    Character.toUpperCase(it as char))  
  6.       }  
  7.       sb.toString()  
  8. }  
  注意缺省在ExpandoMetaClass中,动态增加的东东是不支持继承的,即你在父类中增加的新方法,属性等在子类中并不存在。要想能被继承,需要在你的应用程序(main方法)或者Servelt启动前,执行ExpandoMetaClass.enableGlobally()方法。

 最后这个ExpandoMetaClass在1.1的beta1中并没有,尝鲜着需从svn上build;),或者用我2006-6-3编译的snapshot版本,为了简单期间,我只提供groovy-all-1.1-BETA-2-SNAPSHOT.jar下载,运行的命令行是:
java 代码
 
  1. java -cp groovy-all-1.1-BETA-2.jar org.codehaus.groovy.tools.GroovyStarter --main groovy.ui.Console  
评论
zmg229 2007-08-16
C:\Documents and Settings\jacky_zhang>java -cp D:\develop\grails-0.5.6\lib\commons-lang-2.1.jar;D:\dev
elop\groovy-1.1-BETA-1\lib\antlr-2.7.6.jar;D:\develop\groovy-1.1-BETA-1\lib\commons-cli-1.0.jar;D:\dev
elop\groovy-1.1-BETA-1\lib\asm-2.2.jar;D:\develop\groovy-1.1-BETA-1\lib\groovy-1.1-BETA-1.jar;D:\devel
op\groovy-1.1-BETA-1\lib\commons-lang-1.0.jar org.codehaus.groovy.tools.GroovyStarter --main groovy.ui
.GroovyMain --classpath "D:\develop\grails-0.5.6\lib\commons-lang-2.1.jar;D:\develop\groovy-1.1-BETA-1
\lib\commons-lang-1.0.jar" -e " import org.apache.commons.lang.WordUtils;class Greeter {def name;Greet
er(who) { name = WordUtils.capitalize(who) };def salute() { println 'Hello ' + name; }};new Greeter('w
orld').salute();"
Hello World

强啊!!!
远离尘嚣
山风小子 2007-06-14
"如果使用IDE我一般是Eclipse+Groovy 插件+grails run-app"
哈哈~我也是 :)
不过11月份JetBrains公司会发布JetGroovy插件,支持Groovy和Grails开发,到那时我打算使用Intellij IDEA了
agile_boy 2007-06-13
to Puras
如果使用IDE我一般是Eclipse+Groovy 插件+grails run-app
:)
如果不喜欢IDE,建议UltraEdit/EditPlus就很不错啊
Puras 2007-06-13
想请教一下各位做GRails时用什么开发环境
中午的时候试了一下Eclipse
感觉操作烦锁
而且支持的很差
有很多东西改完了不能自动更新
山风小子 2007-06-13
To Puras:
到时让我们欣赏一下你的作品
agile_boy 2007-06-13
加油,Puras!!!
Puras 2007-06-13
朋友让我帮他的公司做个网站
准备用GRails来弄

抓紧时间
agile_boy 2007-06-13
三人同行,必有我师,何况我们多人,groovyers 加油!
山风小子 2007-06-12
To simohayha:
学无先后,达者为先
simohayha 2007-06-12
呵呵,按现在也想学Groovy了。
山风小子 2007-06-04
To agile_boy:
中文版可能会更新,英文版的就只能等《Groovy in Action》第2版
agile_boy 2007-06-04
to Puras,学习是不可避免的,建议大家在实践中学习应用 :)
1.1发布以后,估计<groovy in action>应该也会更新吧,期望中。。。
山风小子 2007-06-04
这个特性对于groovy很重要,使她的‘动态’增强了不少
Puras 2007-06-04

看来俺学习的进度应该加快了。
笨笨狗 2007-06-03
汗,变化可真大,看来《groovy in action》中文版出来后,又得补充很多内容了,到时候大家一起来把新的这些内容写出来吧,以便后来者参考学习:)
agile_boy 2007-06-03
呵呵,不是我性急,是Graeme先把文档提前发布了
山风小子 2007-06-03
哈哈~agile_boy可真性急啊 :)

Groovy1.1-beta2大概在6月末发布,其中包含了增强版的ExpandoMetaClass。
agile_boy
搜索本博客
我的相册
08ebfa7e-5134-4949-b957-b858965e80f6-thumb
藏民生活体验(做糌粑)
共 5 张
存档
最新评论