赞
踩
一个集合使用展开运算符(*.)可以得到一个元素为原集合各个元素执行后面指定方法所得值的集合
def people = [new Person(name:'阿大',age:24),new Person(name:'阿二',age:18)]
println people*.toString()
由于Groovy中“非空即真”,所以原java中的三元运算符可以简化为二元运算符
String name= person.name?person.name:'unknown'// java的写法
def name2= person.name ?: "unknown" // Groovy 的写法
安全占位符(?.)主要用于避免空指针异常
Person user
println user.name// Throws NullPointerException
// 为避免空指针异常,需要加上一个检查,java的写法如下
if (user != null) {
println "Java FirstName = ${user.firstName}"
}
// Groovy语法的写法
println "Groovy FirstName = ${user?.firstName}"
我们知道闭包可以被作为一个方法的参数,但是怎么让一个方法作为一个方法的参数呢?Method Closure Operator就是用来解决上述问题的,它允许将一个方法当成一个闭包作为另一个方法的参数。
def list = ['老大','老二','老三']
//常规的遍历
list.each{
println it
}
String printName(name){
println name
}
//将printName作为参数进行遍历
list.each(this.&printName)
List empty = []
Map empty = [:]
需要知道的是,这种方式新建的List实例是ArrayList,Map实例是LinkedHashMap
class A {
String b
}
A a = new A()
a.b //通过get方法拿值
a.getB() //通过get方法拿值
a.@b //直接拿值
“as”关键字在Groovy语言中最为常用的用法是进行强制类型转换
用Groovy的是,可能经常看到这样的代码
String a = '78'
int b = a as int
print b
第二行,有个关键字as,可以看出来作用就是把String类型的a转成int类型的b。它是怎么工作的呢,很简单,就是把这个操作代理给了String的asType方法
参考:http://blog.csdn.net/hivon/article/details/2825025
例子比较多 就不一一列出来了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。