Groovy的Api文档
一、Groovy是什么?

二、Groovy与Java比较
(1) Groovy完全兼容Java语法,即在Groovy中编写java代码是可以执行的。因为二者都是基于JVM的,Groovy最后也是编译成java字节码的(2) 代码行尾的分号是可选的
(3) 类、方法默认都是public的
(4) 编译器给属性自动添加getter/setter方法
(5) 属性可以用点号获取
(6) 在方法里面最后一个表达式的值会被作为返回值,即如果一个方法有返回值,那么return这个关键字可以不写
(7) ==等同于equals(),不会有NullPointerExceptions,但是直接用空对象去调用属性或方法的时候仍会报空指针异常
三、高效特性
(1) 自带断言语句,即assert语句(2) 可选类型定义,申明变量可以使用"def 变量名",变量的具体类型是根据后面的操作推导出来的
(3) 可选括号,调用方法的时候如果有参数,括号可以不写
(4) 字符串,Groovy的字符串有三种表达形式:单引号、双引号、三个单引号
(5) 集合API,Groovy中的List和Map有更高效的写法
(6) 支持闭包
四、利用IDEA搭建Gradle项目
4.1 创建项目步骤





4.2 打开Groovy Console控制器

五、Groovy语言特性测试
5.1 对于Groovy语言的特性测试一
public class ProjectVersion {
private int major;
private int minor; //没有给minor添加set/get方法
ProjectVersion(int major, int minor) {
this.major = major //语句末尾没有分号,成功编译执行
this.minor = minor
}
int getMajor() {
major //最后一个表达式作为返回值
}
void setMajor(int major) {
this.major = major
}
}
ProjectVersion v1 = new ProjectVersion(2, 1);
println v1.major; //打印成功
println v1.minor; //打印成功
ProjectVersion v2 = null;
println v2==v1 //false,未报空指针异常
println v2.minor //报空指针异常
5.2 对于Groovy语言的特性测试二
//Groovy的高效特性
//1 可选的类型定义
def version = 1;
//2 assert断言
//assert version == 2;
//3 括号是可选的
println version
//4 字符串
def s1 = 'groovy';
def s2 = "gradle version is ${version}"
def s3 = '''gradle
is
good tools'''
println s1
println s2
println s3
//5 集合
//list
def buildTools = ['ant', 'maven'];
buildTools << 'gradle'
assert buildTools.getClass() == ArrayList
assert buildTools.size() == 3
//map
def buildMap = ["ant": "第一代工具", "maven": '第二代工具'];
buildMap.gradle="第三代工具";
println buildMap.size();
println buildMap
println buildMap.ant
println buildMap.getClass() //LinkedHashMap
//6 闭包
def c1={
v->println v
}
def c2={
println 'hello'
}
//这里的Closure不能导包,它是Groovy自带的
def method1(Closure closure){
closure('有参数')
}
def method2(Closure closure){
closure()
}
method1(c1)
method2(c2)