论坛首页 Java企业应用论坛

被Groovy震的第一下

浏览 20977 次
精华帖 (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!

   发表时间:2009-03-17  
这还不是最简单的,试试:
println new URL("http://manyinjin.iteye.com").text

0 请登录后投票
   发表时间:2009-03-17  
要是能自动封装Getter/Setter就好了。例如你的例子:
println new URL("http://manyinjin.iteye.com").openConnection().inputStream.text;   
0 请登录后投票
   发表时间: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
0 请登录后投票
   发表时间:2009-03-17  
yipsilon 写道
要是能自动封装Getter/Setter就好了。例如你的例子:
println new URL("http://manyinjin.iteye.com").openConnection().inputStream.text;   

可以的
0 请登录后投票
   发表时间:2009-03-17  
这个任何动态语言都可以的……
0 请登录后投票
   发表时间:2009-03-18  
概念很酷!

groovy只是语法表面上动态而已,语法上充斥着魔法,最终还是要编译成java class文件,在一个JVM静态的容器中运行,本质上还是静态的。

groovy倒像是java语法动态化的一个极端。

说groovy可以和java无缝结合到一起,真的,这太理想,当我在java里修改一个类的名字,我得到groovy里找到引用的地方一个个改掉,这真得很郁闷。

动态语法给IDE支持造成困难,特别是重构方面,简便快捷的重构也意味着良好的维护,反之亦然,说来说去又说到动态语法不容易维护的通病。

编程简单,维护困难。
编程困难,维护简单。
平衡一点,希望java变得再动态一点。
0 请登录后投票
   发表时间:2009-03-18  
tinyyea 写道

说groovy可以和java无缝结合到一起,真的,这太理想,当我在java里修改一个类的名字,我得到groovy里找到引用的地方一个个改掉,这真得很郁闷。

你用什么IDE?我用IDEA修改类名的时候是可以自动把groovy中的也改掉的。
0 请登录后投票
   发表时间: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;
}
真的很简单。
0 请登录后投票
   发表时间:2009-03-20  
tinyyea 写道

概念很酷!groovy只是语法表面上动态而已,语法上充斥着魔法,最终还是要编译成java class文件,在一个JVM静态的容器中运行,本质上还是静态的。 groovy倒像是java语法动态化的一个极端。说groovy可以和java无缝结合到一起,真的,这太理想,当我在java里修改一个类的名字,我得到groovy里找到引用的地方一个个改掉,这真得很郁闷。动态语法给IDE支持造成困难,特别是重构方面,简便快捷的重构也意味着良好的维护,反之亦然,说来说去又说到动态语法不容易维护的通病。编程简单,维护困难。编程困难,维护简单。平衡一点,希望java变得再动态一点。

嗯,我看了一下它最终生成的字节码,该有什么还是有什么,有点类似cglib做的事情。Groovy用在特定的场合还是很有优势的,比如,写写测试脚本和用例什么的。但是如果真要用来做大的应用,确实会存在很多问题,比如,效率问题,维护问题等。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics