Groovy和Java相比的特点
【摘要】 Groovy和Java相比的特点
一、Groovy和Java相比的特点
-
Groovy完全兼容Java语法。
-
分号是可选的。
-
类、方法默认都是public。
-
编译器自动给属性添加getter/setter方法。
-
属性可以用点号直接获取。
- 直接使用
点号属性名
访问的是编译器自动添加的getter方法。
- 直接使用
-
最后一个表达式的值会被作为返回值。
-
==等同于equals(),不会有NullPointException异常抛出。
-
assert语句进行断言操作。
-
弱类型编程语言 def。
-
可选括号。
-
字符串三种表达形式,’’,"",’’’’’’,
- 单引号就只是一个字符串。
- 双引号中间可以使用${}插入变量
def s2 = "s2 ${version}"
- 三引号里面的内容可以换行。
-
集合API具有更简单的写法。
// 定义集合 def buildTools = ["ant","maven"] // 添加元素 buildTools << 'gradle' // 默认类型是ArrayList assert buildTools.getClass() == ArrayList assert buildTools.size() == 3 // 定义Map def buildYears = ["ant":2000,"maven":2009] // 添加元素 buildYears << ['gradle':123] // 获取元素 println buildYears.ant // 获取元素 println buildYears.get("maven") // 默认类型是LinkedHashMap assert buildYears.getClass() == LinkedHashMap
-
闭包(简单理解)。
// 带参数闭包 def c1 = { v -> println v } // 不带参数闭包 def c2 = { println 'hello' } // 方法1,Closure闭包作为参数,不要导入包,导入的包是Java的 def method1(Closure closure){ closure('param') } // 方法2 def method2(Closure closure){ closure() } // 调用,传参 method1(c1) method2(c2)
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)