groovy安装及一些特性思考

来源:互联网 发布:谷歌程序员年薪三百万 编辑:程序博客网 时间:2024/05/30 04:50
  • 安装:
    1. http://groovy.codehaus.org/Download 下载binary版本
    2. 解压后设置GROOVY_HOME为你解压的地址,PATH为GROOVY_HOME/bin
    3. 执行groovysh看能否进行groovy命令行模式,或者groovyConsole进行交互模式

  • eclipse插件安装:

    1. 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等的调用简便化处理