Groovy学习笔记

1. 前传java

很久木有更新博客了,老是感受少点什么,今天点开这个page,并非由于已然胸有文章,而是但愿有一个占位符,让我能记录点滴的学习历程。编程

抒发一下心情先:最近的节奏不怎么舒服,每一个周末都在看房的路上,终于,通过一个月的颠簸,房子终于订下来啦,撒花。。。。函数式编程

哎?也许我能够写一篇关于买房的博客,嘿嘿:)函数

2. 言归正传学习

昨天开始,项目上来了一个新的project,是一个基于JBehave的function test project,其中实现代码使用Groovy编写。虽然以前在使用gradle的时候接触过groovy,可是面对这个工程,须要本身直面那些groovy代码的时候,已然感觉到了爱莫能助。gradle

你们不是都说groovy和java很像吗?closure是什么?函数式编程到底怎么搞?这个方法怎么用字符串作方法名呢?‘->’是个什么意思?还有那些annotation,@Mixin @Delegate,这些都是从哪里冒出来的呢???spa

因而,某菲下载了一本《Groovy in action》(中文版),貌似叫作什么什么in action的书都是好书,并且为了节省体力特地下载了中文版,嘿嘿:)code

3. 言归正正传blog

当某菲翻开这本书的时候,看到的第一个信息点就是:groovy和java很像很像。继承

某菲:做者君?!你要是不说清楚groovy和java哪里很像很像的话,某菲但是会不开心的!

做者君因而摆出了这样的说明:首先,groovy是基于java平台而且运行于java虚拟机(JVM)之上的,同时java中的类库都说能够被groovy代码调用的;其次,groovy和java是能够相互调用(groovy能够调用java,这是由于每个groovy类型都是java.lang.Object的子类;java中能够调用groovy:将groovy类编译到一个以.class结尾的文件中,而且把它放在java的classpath中);也就是说,某菲呀,你能够把groovy理解为建立java类的一种新途径(运行时建立),groovy是使用了额外jar文件依赖的java。

4. 朝花夕拾之@Mixin

@Mixin用于继承某个类中提供的方法,同时有能够避免multiple inheritance带来的问题。

groovy支持编译时的Mixin

--》--->>我是编译时Mixin的例子:

class Dog {
    def eat() {
        "eating..."
}
}

@Mixin(Dog)
class Cat {
  
}

Cat cat = new Cat()
cat.eat() //returns "eating..."
相关文章
相关标签/搜索