我是靠谱客的博主 忐忑摩托,这篇文章主要介绍Groovy总结,现在分享给大家,希望可以做个参考。

    • Spread Operator展开运算符
    • Elvis Operator二元运算符
    • Safe NavigationDereference Operator安全占位符
    • Method Closure Operator
    • 定义list和map
    • 字段操作
    • as
    • Criteria

1.Spread Operator(展开运算符)

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

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

2.Elvis Operator(二元运算符)

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

复制代码
1
2
3
String name= person.name?person.name:'unknown'// java的写法 def name2= person.name ?: "unknown" // Groovy 的写法

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

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

复制代码
1
2
3
4
5
6
7
8
9
Person user println user.name// Throws NullPointerException // 为避免空指针异常,需要加上一个检查,java的写法如下 if (user != null) { println "Java FirstName = ${user.firstName}" } // Groovy语法的写法 println "Groovy FirstName = ${user?.firstName}"

4.Method Closure Operator

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def list = ['老大','老二','老三'] //常规的遍历 list.each{ println it } String printName(name){ println name } //将printName作为参数进行遍历 list.each(this.&printName)

5.定义list和map

复制代码
1
2
List empty = [] Map empty = [:]

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

6.字段操作

复制代码
1
2
3
4
5
6
7
8
class A { String b } A a = new A() a.b //通过get方法拿值 a.getB() //通过get方法拿值 a.@b //直接拿值

7.as

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

复制代码
1
2
3
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

8.Criteria


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

最后

以上就是忐忑摩托最近收集整理的关于Groovy总结的全部内容,更多相关Groovy总结内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部