实战 Groovy: 在 Java 应用程序中加一些 Groovy 进来
2009-11-19 00:00:00 来源:WEB开发网在清单 1 中,我声明了三个类 —— Person、Address 和 ContactNumber。之后的代码根据这些新定义的类型创建对象,然后调用 toString() 方法。迄今为止,Groovy 中的代码还非常简单,但现在来看一下清单 2 中 groovyc 产生什么样的结果:
清单 2. groovyc 命令生成的类aglover@12d21 /cygdrive/c/dev/project/target/classes/com/vanward/groovy
$ ls -ls
total 15
4 -rwxrwxrwx+ 1 aglover user 3317 May 3 21:12 Address.class
3 -rwxrwxrwx+ 1 aglover user 3061 May 3 21:12 BusinessObjects.class
3 -rwxrwxrwx+ 1 aglover user 2815 May 3 21:12 ContactNumber.class
1 -rwxrwxrwx+ 1 aglover user 1003 May 3 21:12
Person$_toString_closure1.class
4 -rwxrwxrwx+ 1 aglover user 4055 May 3 21:12 Person.class
哇!五个 .class 文件!我们了解 Person、Address 和 ContactNumber 文件的意义,但是其他两个文件有什么作用呢?
研究发现,Person$_toString_closure1.class 是 Person 类的 toString() 方法中发现的闭包的结果。它是 Person 的一个内部类,但是 BusinessObjects.class 文件是怎么回事 —— 它可能是什么呢?
对 清单 1 的深入观察指出:我在脚本主体中编写的代码(声明完三个类之后的代码)变成一个 .class 文件,它的名称采用的是脚本名称。在这个例子中,脚本被命名为 BusinessObjects.groovy,所以,类定义中没有包含的代码被编译到一个名为 BusinessObjects 的 .class 文件。
更多精彩
赞助商链接