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..."