锁定老帖子 主题:被Groovy震的第一下
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (7)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-17
最后修改:2009-12-14
呵呵,下面这段代码,看起来很眼熟吧?猜猜输出的是什么? println new URL("http://manyinjin.iteye.com").openConnection().getInputStream().getText(); 简单的一行语句,blog里面的东西都print了,重要的是,我只需要知道java里怎么做就行了。。。 你甚至可以这样:
public class Person{ String name; String idCard; } Person p = new Person(name:"manyinjin", idCard:"my idcard #"); println p.getAt("name"); println p.getName(); 没有学习曲线,和java完全交融,在享受java强大的服务器端技术的同时也简化了语法和显著减少了代码行数,pretty cool! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-17
这还不是最简单的,试试:
println new URL("http://manyinjin.iteye.com").text |
|
返回顶楼 | |
发表时间:2009-03-17
要是能自动封装Getter/Setter就好了。例如你的例子:
println new URL("http://manyinjin.iteye.com").openConnection().inputStream.text; |
|
返回顶楼 | |
发表时间:2009-03-17
最后修改:2009-03-17
第二段还可以写成:
class Person{ String name String idCard } def p = new Person(name:"manyinjin", idCard:"my idcard #") println p['name'] println p.name |
|
返回顶楼 | |
发表时间:2009-03-17
yipsilon 写道 要是能自动封装Getter/Setter就好了。例如你的例子:
println new URL("http://manyinjin.iteye.com").openConnection().inputStream.text; 可以的 |
|
返回顶楼 | |
发表时间:2009-03-17
这个任何动态语言都可以的……
|
|
返回顶楼 | |
发表时间:2009-03-18
概念很酷!
groovy只是语法表面上动态而已,语法上充斥着魔法,最终还是要编译成java class文件,在一个JVM静态的容器中运行,本质上还是静态的。 groovy倒像是java语法动态化的一个极端。 说groovy可以和java无缝结合到一起,真的,这太理想,当我在java里修改一个类的名字,我得到groovy里找到引用的地方一个个改掉,这真得很郁闷。 动态语法给IDE支持造成困难,特别是重构方面,简便快捷的重构也意味着良好的维护,反之亦然,说来说去又说到动态语法不容易维护的通病。 编程简单,维护困难。 编程困难,维护简单。 平衡一点,希望java变得再动态一点。 |
|
返回顶楼 | |
发表时间:2009-03-18
tinyyea 写道 说groovy可以和java无缝结合到一起,真的,这太理想,当我在java里修改一个类的名字,我得到groovy里找到引用的地方一个个改掉,这真得很郁闷。 你用什么IDE?我用IDEA修改类名的时候是可以自动把groovy中的也改掉的。 |
|
返回顶楼 | |
发表时间:2009-03-20
JohnnyJian 写道 这还不是最简单的,试试: Java代码 println new URL("http://manyinjin.iteye.com").text println new URL("http://manyinjin.iteye.com").text 呵呵,试了一下,真的很cool 像这个, new File( 'd:\\tmp\\test.log' ).eachLine{ line -> if(line =~ ".*127.0.0.1.*") println line; } 真的很简单。 |
|
返回顶楼 | |
发表时间:2009-03-20
tinyyea 写道 概念很酷!groovy只是语法表面上动态而已,语法上充斥着魔法,最终还是要编译成java class文件,在一个JVM静态的容器中运行,本质上还是静态的。 groovy倒像是java语法动态化的一个极端。说groovy可以和java无缝结合到一起,真的,这太理想,当我在java里修改一个类的名字,我得到groovy里找到引用的地方一个个改掉,这真得很郁闷。动态语法给IDE支持造成困难,特别是重构方面,简便快捷的重构也意味着良好的维护,反之亦然,说来说去又说到动态语法不容易维护的通病。编程简单,维护困难。编程困难,维护简单。平衡一点,希望java变得再动态一点。 嗯,我看了一下它最终生成的字节码,该有什么还是有什么,有点类似cglib做的事情。Groovy用在特定的场合还是很有优势的,比如,写写测试脚本和用例什么的。但是如果真要用来做大的应用,确实会存在很多问题,比如,效率问题,维护问题等。 |
|
返回顶楼 | |