您的位置:首页 > 其它

groovy安装及一些特性思考

2012-05-18 14:31 375 查看
安装:

http://groovy.codehaus.org/Download 下载binary版本
解压后设置GROOVY_HOME为你解压的地址,PATH为GROOVY_HOME/bin
执行groovysh看能否进行groovy命令行模式,或者groovyConsole进行交互模式

eclipse插件安装:

http://groovy.codehaus.org/Eclipse+Plugin

groovy与java比较的特性

动态编译groovy如同其他脚本语言一样,是不是需要进行事先编译才能运行的,而是直接可以运行,在运行时进行编译,因此在性能上会差于java。
动态类型与java不同,groovy声明变量时不用指定变量类型,变量的类型在最终使用时动态指定,如:

str="this is a string"
而且在调用某个对象的方法,能否调用完全取决于该类有没有此方法,如果有此方法便可调用 ,这就天然的支持多态,甚至比java的多态更加得自由,如:

class ThisClass{
def name
def phone
}
class OtherClass{
def sex
def name
}
def showname(people){
println "people name is:"+people.name
}
ThisClass tc = new ThisClass(name:"this",phone:"123")
OtherClass oc = new OtherClass(sex:"man",name:"other")
showname(tc)
showname(oc)


闭包groovy中与java另一个不同是groovy能像javascript一样将函数作为变量进行传递,从而能够实现闭包以及callback方式的调用,如:

class User{
def name
def phone
}

phonesome = {user ->
println "dial  $user.phone    !"
println "connected!!!"
println "hello $user.name"
}

class Me{
def friend
def dosomething(something){

something.call(friend)
}
}
me = new Me(friend: new User(name:"haidong",phone:"12345"))
me.dosomething(phonesome)


其他各种对collection、IO等的调用简便化处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: