Groovy程序设计第2章面向Java开发者的Groovy-对JDK的扩展

Java平台的核心优势之一就是其Java开发包(JDK)。
Groovy通过向JDK的各种类中添加便捷方法,扩展为GDK(或Groovy JDK)。

下面通过讲解Groovy扩展的一个方法来演示GDK是如何扩展的:一个用于与外部进程通信的GDK便捷方法

Java版本

Java中可以使用java.lang.Process与系统级进程交互。

Groovy程序设计第2章面向Java开发者的Groovy-对JDK的扩展_第1张图片

Groovy版本

Groovy通过在java.lang.String类上添加一个execute()方法。


在Groovy代码中,仍然使用了 Process和JDK。

那些让利用JDK和Java平台的力量更困难且更耗时的不必要的复杂性,才是我们的敌人。

Stringexecute()方法创建了一个扩展了java.lang.Process的类的实例

当在String实例上调用execute()方法时,Groovy创建了一个扩展了java.lang.Process的类的实例,就像Java代码中Runtime类的exec()方法所做的那样。


当在类Unix机器上运行时,输出如下:
java.lang.UNIXProcess
在Windows机器上,输出则是:
java.lang.ProcessImpl

Groovy在Process类上添加getText()方法

当调用text时,是在调用Groovy在Process类上添加的getText()方法,其功能是将该进程的整个标准输出读到一个String对象中。
如果只是想等待进程结束,可以使用waitFor()或Groovy添加的waitForOrKill()方法。

更多的例子——groovy -v

在Windows上:


Paste_Image.png

更多的例子——ls -l

在Windows上,简单地把ls替换为dir是不起作用的。原因在于,尽管ls是一个可以在类Unix系统上执行的程序,但dir并不是一个程序,它只是一个shell命令。需要调用cmd,并让它来执行dir命令:

你可能感兴趣的:(Groovy程序设计第2章面向Java开发者的Groovy-对JDK的扩展)