Groovy学习()面向Java开发者的Groovy

本文介绍Groovy编程的基础语法,包括循环、方法调用、异常处理等,并通过实例演示如何使用Groovy简化Java代码。此外,还展示了Groovy如何扩展JDK,实现更简洁的编程方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

第一段Groovy代码

 

// first groovy program
for(int i = 0; i < 3; i++) {
    System.out.println("ho ");
}

System.out.println("Merry Groovy");

 

看起来好简单。

还有更简单的方式:

for (i in 0..2) { print 'ho '}

 

0.upto(2) { print "$it "}

upto默认接受一个闭包作为参数,如果闭包只需要一个参数,在Groovy中可以使用名字it来表示该参数。

 

如果范围从0开始,还可以使用times

3.times { print "$it " }

 

Groovy没有强迫使用一组新的类库,而是可以通过向JDK的各种类添加便捷方法,Groovy扩展了强大的JDK。

比如调用系统命令

 

println "groovy.bat -v".execute().text

这里的bat不能省略,奶奶的。

 

或者可以这样

println "groovy.bat -v".execute().text
println "cmd /C groovy -v".execute().text

 

def foo(str) {
    // if (str != null) { str.reverse(); }
    print str?.reverse()
}

foo('evil')
print '\n'
foo(null)

 

Java强制我们处理所有的受检查异常(Checked Exception)。

 

对于那些我们不想处理,或者不适合在代码的当前层次处理的异常,Groovy并不强制我们处理。

我们不处理的任何异常都会被自动传递到更高一层去。

 

// 定义打开文件
def openFile(fileName) {
    new FileInputStream(fileName)
}

try {
    openFile("nonexistentFile")
} catch (FileNotFoundException ex) {
    println "Oops: " + ex
}

 

注意,这里不能捕获Exception之外的Error或Throwable。要捕获这些请用catch(Throwable throwable)

 

class Car {
    def miles = 0
    final year

    Car(theYear) {
        year = theYear
    }
}

Car car = new Car(2008)

println "Year: $car.year"
println "Miles: $car.miles"
car.miles = 25
println "Miles: $car.miles"

 

看起来好简单的样子啊。

JVM不愧是宇宙第一虚拟机。

 

如果属性给了final,那么只会提供访问器,而不会提供更改器。

修改final字段的任何尝试都会导致异常。

 

请谨慎使用class属性,像Map、生成器等一些类对该属性有特殊的处理。因此为了避免意外,一般使用getClass,而不是class。

转载于:https://www.cnblogs.com/tuhooo/p/8695235.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值