当前位置:   article > 正文

Groovy总结_groovy可以用二元表达式吗

groovy可以用二元表达式吗

1.Spread Operator(展开运算符)

一个集合使用展开运算符(*.)可以得到一个元素为原集合各个元素执行后面指定方法所得值的集合

def people = [new Person(name:'阿大',age:24),new Person(name:'阿二',age:18)]  
println people*.toString()
  • 1
  • 2
  • 3

2.Elvis Operator(二元运算符)

由于Groovy中“非空即真”,所以原java中的三元运算符可以简化为二元运算符

String name=  person.name?person.name:'unknown'// java的写法  

def name2= person.name ?: "unknown" // Groovy 的写法
  • 1
  • 2
  • 3

3.Safe Navigation/Dereference Operator(安全占位符)

安全占位符(?.)主要用于避免空指针异常

Person user  
println user.name// Throws NullPointerException  
// 为避免空指针异常,需要加上一个检查,java的写法如下  
if (user != null) {  
    println "Java FirstName = ${user.firstName}"  

}  
// Groovy语法的写法  
println "Groovy FirstName = ${user?.firstName}"    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4.Method Closure Operator

我们知道闭包可以被作为一个方法的参数,但是怎么让一个方法作为一个方法的参数呢?Method Closure Operator就是用来解决上述问题的,它允许将一个方法当成一个闭包作为另一个方法的参数。

def list = ['老大','老二','老三']  
//常规的遍历  

list.each{  
    println it  

}  

String printName(name){  
    println name  
}  

//将printName作为参数进行遍历  
list.each(this.&printName)  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

5.定义list和map

List empty = []  
Map empty = [:]  
  • 1
  • 2

需要知道的是,这种方式新建的List实例是ArrayList,Map实例是LinkedHashMap

6.字段操作

class A {  
   String b  
}  

A a = new A()  
a.b //通过get方法拿值  
a.getB() //通过get方法拿值  
a.@b //直接拿值  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

7.as

“as”关键字在Groovy语言中最为常用的用法是进行强制类型转换
用Groovy的是,可能经常看到这样的代码

String a = '78'  
int b = a as int  
print b  
  • 1
  • 2
  • 3

第二行,有个关键字as,可以看出来作用就是把String类型的a转成int类型的b。它是怎么工作的呢,很简单,就是把这个操作代理给了String的asType方法
参考:http://blog.csdn.net/hivon/article/details/2825025

8.Criteria


例子比较多 就不一一列出来了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/810394
推荐阅读
相关标签
  

闽ICP备14008679号