Hello World! — 用 Groovy 编写的 Java 程序
https://www.ibm.com/developerworks/cn/education/java/j-groovy/j-groovy.html
单击 Finish 按钮,应该会看到如下所示的代码段:
1
2
3
4
5
|
class HelloWorld { static void main(args) { } } |
这看起来同前面的 Java HelloWorld
示例惊人地相似。但是请注意,它不包含 public
修改符。而且,如果仔细查看 main
方法的参数,会注意到它没有类型。
编译程序
现在在 main
方法内加入 println "Hello World"
,完成后的代码看起来如下所示:
1
2
3
4
5
|
class HelloWorld { static void main(args) { println "Hello World" } } |
学到了什么?
OK,那么这是一种突出重点的取巧方式。Groovy 实际上就是 Java。其语法不同 — 多数情况下会短一些 — 但 Groovy 代码 100% 符合 Java 字节码标准。下一节将进一步介绍这两种语言的交叉。
Groovy 变身为 Java
前面已经看到 Groovy 与 Java 代码实际上可以互换的第一个证据。这一节将进一步证明这点,继续使用 Groovy 构建的 HelloWorld
类。
Hello, Java!
为了使您确信 Groovy 就是 Java,现在在 HelloWorld
类声明和方法声明前面加上 public
修改符,如下所示:
1
2
3
4
5
|
public class HelloWorld { public static void main(args) { println "Hello World" } } |
还不确信?
这个代码运行起来同前面的代码完全一样。但是,如果仍不确信,还可以在 args
参数前加上 String[]
:
1
2
3
4
5
|
public class HelloWorld { public static void main(String[]args) { println "Hello World" } } |
现在还没完
现在,还可以将 println
替换为 System.out.println
— 而且不要忘记加上括号。
1
2
3
4
5
|
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World") } } |
现在的代码与前面用 Java 编写的 Hello World 示例完全相同,但是哪个示例更容易编写呢?
请注意,原来的基于 Groovy 的 HelloWorld
类没有任何 public
修改符,没有任何类型(没有 String[]
),而且提供了没有括号的 println
快捷方式。
Hello, Groovy!
如果喜欢,可以将这个过程完全翻转过来,回到基于 Java 的 Hello World 示例,删除文件里的所有内容,只保留 System.out
行,然后在这行删除 System.out
和括号。最后只剩下:
1
|
println "Hello World" |
现在,哪个程序更容易编写呢?
运行程序!
Groovy 代码完全符合 Java 字节码标准,这个练习证明了这一点。在 Eclipse 中,选择 Run 菜单选项 Open Run Dialog...。选择一个新的 Java Application 配置。确保项目是您的 Groovy 项目。对于 Main
类,单击 Search 按钮,找到 HelloWorld
类。请注意,单词 class 表明 Eclipse Groovy 插件已经将 .groovy 文件编译为 .class 文件。
在图 12 中可以看到整个这个过程 — 如果以前在 Eclipse 中运行过 Java 类,那么您应该对这个过程很熟悉。
图 12. Groovy 代码完全符合 Java 字节码标准
单击 Run 按钮,看到什么了?实际上,“Hello World!” 从未像现在这样能够说明问题。
Groovy 是没有类型的 Java 代码
很可能将 Groovy 当成是没有规则的 Java 代码。但实际上,Groovy 只是规则少一些。这一节的重点是使用 Groovy 编写 Java 应用程序时可以不用考虑的一个 Java 编程的具体方面:类型定义。