2007-06-03
groovy动态方法,属性抢鲜
groovy1.1虽然还没有发布正式的release,但是动态创建方法,属性,构造函数及静态方法的特性已经在svn版本中实现了,其官方文档也已经发布ExpandoMetaClass,详细示例请参考官方文档,这里摘录一点文档的示例,先饱饱眼福 :),呵呵groovyers也不需要羡慕javascript ,ruby等的动态增加方法特性了.
给String动态增加swapCase方法
注意缺省在ExpandoMetaClass中,动态增加的东东是不支持继承的,即你在父类中增加的新方法,属性等在子类中并不存在。要想能被继承,需要在你的应用程序(main方法)或者Servelt启动前,执行ExpandoMetaClass.enableGlobally()方法。
最后这个ExpandoMetaClass在1.1的beta1中并没有,尝鲜着需从svn上build;),或者用我2006-6-3编译的snapshot版本,为了简单期间,我只提供groovy-all-1.1-BETA-2-SNAPSHOT.jar下载,运行的命令行是:
给String动态增加swapCase方法
java 代码
- String.metaClass.swapCase = {->
- def sb = new StringBuffer()
- delegate.each {
- sb << (Character.isUpperCase(it as char) ? Character.toLowerCase(it as char) :
- Character.toUpperCase(it as char))
- }
- sb.toString()
- }
最后这个ExpandoMetaClass在1.1的beta1中并没有,尝鲜着需从svn上build;),或者用我2006-6-3编译的snapshot版本,为了简单期间,我只提供groovy-all-1.1-BETA-2-SNAPSHOT.jar下载,运行的命令行是:
java 代码
- java -cp groovy-all-1.1-BETA-2.jar org.codehaus.groovy.tools.GroovyStarter --main groovy.ui.Console
- 11:43
- 浏览 (6364)
- 评论 (17)
- 分类: groovy/grails
- 进入论坛
- 发布在 Groovy on Grails 圈子
- 相关推荐
评论
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
强啊!!!
远离尘嚣
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了
哈哈~我也是 :)
不过11月份JetBrains公司会发布JetGroovy插件,支持Groovy和Grails开发,到那时我打算使用Intellij IDEA了
agile_boy
2007-06-13
to Puras
如果使用IDE我一般是Eclipse+Groovy 插件+grails run-app
:)
如果不喜欢IDE,建议UltraEdit/EditPlus就很不错啊
如果使用IDE我一般是Eclipse+Groovy 插件+grails run-app
:)
如果不喜欢IDE,建议UltraEdit/EditPlus就很不错啊
Puras
2007-06-13
想请教一下各位做GRails时用什么开发环境
中午的时候试了一下Eclipse
感觉操作烦锁
而且支持的很差
有很多东西改完了不能自动更新
中午的时候试了一下Eclipse
感觉操作烦锁
而且支持的很差
有很多东西改完了不能自动更新
山风小子
2007-06-13
To Puras:
到时让我们欣赏一下你的作品
到时让我们欣赏一下你的作品
agile_boy
2007-06-13
加油,Puras!!!
Puras
2007-06-13
朋友让我帮他的公司做个网站
准备用GRails来弄
哈
抓紧时间
准备用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版
中文版可能会更新,英文版的就只能等《Groovy in Action》第2版
agile_boy
2007-06-04
to Puras,学习是不可避免的,建议大家在实践中学习应用 :)
1.1发布以后,估计<groovy in action>应该也会更新吧,期望中。。。
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。
Groovy1.1-beta2大概在6月末发布,其中包含了增强版的ExpandoMetaClass。
- 浏览: 79641 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
藏民生活体验(做糌粑)
共 5 张
共 5 张
链接
最新评论
-
Groovy 1.6-beta-1发布, ...
def f = gsh.find('.', '-name', '*.java', ...
-- by agile_boy -
Groovy 1.6-beta-1发布, ...
多谢了! 不过在groosh里面似乎不能使用通配符 def gsh = new ...
-- by groovyzhou -
Grails 1.0.3发布
to cauxu 如果要深入了解,还是有必要去了解一下Spring和Hibern ...
-- by agile_boy -
Grails 1.0.3发布
使用Grails 需要熟悉Spring hibernate么?
-- by cauxu -
Grails 1.0.3发布
究竟grails 1.1还发不发呀!我最近都偃旗息鼓,学django去了!感觉g ...
-- by zengsun






评论排行榜