<groovy>扩展java的语法

groovy中多的关键字  in as def

1.循环的简单语法

for(i in 0..9){}

10.times{}

0.upto(9){}

0.step(10,2){}

2.扩展String类

java

Process p = Runtime.getRuntime()

p.execute("dir")

p.getInputStream()....

groovy 

  "dir".execute().text

3.重载操作符

?.  自动检查空值,为空就直接返回空,不会抛出NullPointerException

$   可以在字符串中使用${key}来获取当前变量值

<<  使用此操作符可以向集合中添加元素,转换为集合中添加的leftShift()方法

4,异常处理

不用手动处理异常,groovy会自动抛给调用者

5变量方法定义

变量方法都可以用def定义,方法参数类型可以省略,支持可选参数 ex: def methodName(a,b=1){}

6.多赋值 

ex:def  (firstName,lastName) = "James Bond".split(" ")

7对java5的支持

在java中int可以通过int.class.getName()获得int的类名

,在groovy中声明了int 类型的变量,实际它是Integer的实例       

8使用groovy代码生成变化

@Canonical 用在类上是生成的toString方法只包含想生成的字段 ex: @Canonical(exludes="a,b")

@Delegate  在一个类中使用另一个类的方法,只需声明字段 为这个类,加这个注解

A {

method(){

println "aaa"

}

}

B{

@DelegateA a = new A()

}

new B().method();

@Immutable 用注解标注一个类会将其字段自动标注为final

@Lazy 延迟加载

@newify 在类上加上这个注解,声明需要省略new的类的数组,类中可以省略new关键字 ex : new Person("tom")  -----------> Person("tom")

@singleton [lazy]

@TypeChecked groovy默认不检查类型,加上激活类型检查

9闭包

声明闭包  Closure closure = {}

<span style="white-space:pre">	</span>DBKit.instance.executeQuery(sql,{ //执行一次查询暴露出resultset
            rs ->
                if (rs.next())
                    return rs.getInt(1)+1;
         }
使用闭包 closure() or closure.call() 并传递闭包需要的参数

科里化闭包 当给闭包传递参数相同时,可以预编译闭包 cc = closure.curry(相同的参数),cc(不同的参数)

闭包有三个属性 this owner delegate  delegate一般会设置为owner

10字符串

单引号的是java字符串

双引号groovy字符串 可使用${}访问变量

三引号 多行字符串

// 也可以创建字符串

正则  ~  //  创建   =~ 执行部分匹配 ==~ 精确匹配

11 使用集合类 类似python列表 




参考<<Groovy程序设计>>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值