GDK:g roovy 类库

Groovy紧密与java联系,在groovy中十分容易的使用java类,反过来也一样的容易,因为他们有相同的对象,groovy对象和java对象之间不存在桥梁,在这本书的例子代码中,每一个groovy对象都是一个java对象实例,在运行时他们都指向同一个对象。

对于java程序员来说这是一个巨大的优势,因为他们学习到的java知识能起到杠杆作用,考虑一下在groovy中一个字符串:„Hello world!‟因为这是一个java.lang.String,java程序员知道可以在这个字符串对象上使用 JDK方法String.startsWith:if ('Hello World!'.startsWith('Hello')) { // Code to execute if the string starts with 'Hello' } Groovy的类库是JDK类库的扩展,groovy类库提供了一些新的类(例如,简化数据库访问和XML处理的类),也为已经存在的java类增加了功能,这些附加的功能就是GDK,为java类在兼容性、功能性和可表达性方面提供了重要的优势。

一个有趣的例子是在GDK中被使用的size方法,这个方法可以用于任何对象:

strings,arrays,lists,maps和别的容器,在背后,他们都是JDK的类,这是对JDK的重大改进,列表2.1显示了groovy的size方法对应的java对象的不同方法。

我想你应该赞同GDK的解决方案,这样更加一致,并且更容易记住。 表2.1 在JDK中size方法的不同表现形式

Groovy通过一个名叫MetaClass的装备来技巧性的过滤对对象所有方法的调用,这样允许动态分配方法,包括解决附加方法到存在的类,在下章将了解到MetaClass的更多信息。