加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

groovy基础

发布时间:2020-12-14 16:41:01 所属栏目:大数据 来源:网络整理
导读:与java比较 - Groovy完全兼容java的语法 - 分号是可选的 - 类、方法默认是public的 - 编译器给属性自动添加getter/setter方法 - 属性可以直接用点号获取 - 最后一个表达式的值会被作为返回值 - ==等同于equals(),不会有NullPointerExceptions public class P

与java比较
- Groovy完全兼容java的语法
- 分号是可选的
- 类、方法默认是public的
- 编译器给属性自动添加getter/setter方法
- 属性可以直接用点号获取
- 最后一个表达式的值会被作为返回值
- ==等同于equals(),不会有NullPointerExceptions

public class Person{//类、方法默认是public的
    private String name;
    private int age;

    Person(String name,int age) {
        this.name = name;
        this.age = age  //分号是可选的
    }

    String getName() {
        return name
    }

    void setName(String name) {
        this.name = name
    }

    int getAge() {
        age //最后一个表达式的值会被作为返回值
    }
}

Person p = new Person('张三',18)
p.name = '李四'   //属性可以直接用点号获取
//println(p.name)
println p.name //括号可去掉,中间加空格

def version = 1 //可选类型定义,相当于javascript中的var

assert version == 2 //可直接使用断言

高效的Groovy特性
1. assert语句
2. 可选类型定义(使用def)
3. 可选的括号
4. 字符串
5. 集合API
6. 闭包

def version = 1 //可选类型定义,相当于javascript中的var

assert version == 1 //可直接使用断言

println version //括号是可选的

//字符串
def s1 = 'imooc' //单引表示就是字符串
def s2 = "gradle version is ${version}"     //双引可插入变量
def s3 = '''my
name is
imooc'''
//三个单引号可以换行

println s1
println s2
println s3

//集合list
def person = ['zhangsan','lisi']    //定义list集合
person << 'wangwu'  //增加元素
assert person.getClass() == ArrayList   //通过

//集合map,对应的是java.util.LinkedHashMap
def house = ['songjiang':'big','lujiazui':'small']
house.jiuting = 'normal'
println house.jiuting
println house.getClass()

//闭包 在构建脚本中,闭包被当做方法参数来使用
def c1 = {
    v ->
        println v
}
def c2 = {
    println 'hello'
}
def method1(Closure closure){
    closure('param')
}
def method2(Closure closure){
    closure()
}
method1(c1)
method2(c2)

用groovy看一个工程的build.gradle文件

//构建脚本中默认都是有个project实例的,默认的作用域都是project
//apply是project的方法
apply plugin:'java' 

//project定义的一个属性version并赋值为0.1
version = '0.1'

//repositories是project的方法,闭包作为参数
repositories {
    mavenCentral()
}

dependencies {
    compile 'commons-codec:commons-codec:1.6'
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读