Groovy和Java相比的特点

简介: Groovy和Java相比的特点

一、Groovy和Java相比的特点

  1. Groovy完全兼容Java语法。
  2. 分号是可选的。
  3. 类、方法默认都是public。
  4. 编译器自动给属性添加getter/setter方法。
  5. 属性可以用点号直接获取。

    1. 直接使用点号属性名访问的是编译器自动添加的getter方法。
  6. 最后一个表达式的值会被作为返回值。
  7. ==等同于equals(),不会有NullPointException异常抛出。
  8. assert语句进行断言操作。
  9. 弱类型编程语言 def。
  10. 可选括号。
  11. 字符串三种表达形式,'',"",'''''',

    1. 单引号就只是一个字符串。
    2. 双引号中间可以使用${}插入变量def s2 = "s2 ${version}"
    3. 三引号里面的内容可以换行。
  12. 集合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
  13. 闭包(简单理解)。

    // 带参数闭包
    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)
目录
相关文章
|
6月前
|
Java 开发者
Java一分钟之-Groovy与Java混合编程
【6月更文挑战第13天】本文探讨了Groovy与Java的混合编程,强调了Groovy在JVM上的动态特性及其与Java的高兼容性。文章指出,尽管二者可无缝共存,但仍存在类型不匹配、闭包与匿名内部类差异及语法糖导致的问题。为避免这些问题,建议在Groovy中显式指定类型、理解闭包与匿名类的区别,并制定统一编码规范。通过实例展示了Java调用Groovy脚本和Groovy调用Java类的方法,强调理解两种语言特性的重要性,以实现更高效、维护性更强的系统。
190 3
Java一分钟之-Groovy与Java混合编程
|
Java
Java面向对象进阶3——多态的概述及特点
在编程语言和类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。多态类型(polymorphic type)可以将自身所支持的操作套用到其它类型的值上。计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作。多态也可定义为“一种将不同的特殊行为和单个泛化记号相关联的能力”。
108 0
Java面向对象进阶3——多态的概述及特点
|
存储 安全 算法
Java基础:浅析List、Set、Map的特点和区别(整合版)(上)
Java基础:浅析List、Set、Map的特点和区别(整合版)
307 0
Java基础:浅析List、Set、Map的特点和区别(整合版)(上)
|
Java 程序员
Java面向对象的特点之:继承
Java面向对象的特点之:继承
88 0
Java面向对象的特点之:继承
|
Java
java学习第十四天笔记-面向对象250-继承中的构造方法方法特点
java学习第十四天笔记-面向对象250-继承中的构造方法方法特点
89 0
java学习第十四天笔记-面向对象250-继承中的构造方法方法特点
|
Java
java学习第十三天笔记-面向对象249-继承中成员方法和成员变量的特点-利用方法的重写去设计继承结构
java学习第十三天笔记-面向对象249-继承中成员方法和成员变量的特点-利用方法的重写去设计继承结构
88 0
java学习第十三天笔记-面向对象249-继承中成员方法和成员变量的特点-利用方法的重写去设计继承结构
|
Java
java学习第十三天笔记-面向对象247-继承中成员方法和成员变量的特点-成员方法的访问特点
java学习第十三天笔记-面向对象247-继承中成员方法和成员变量的特点-成员方法的访问特点
94 0
java学习第十三天笔记-面向对象247-继承中成员方法和成员变量的特点-成员方法的访问特点
|
Java
java学习第十三天笔记-面向对象246-继承中成员方法和成员变量的特点-成员变量的访问特点小练习
java学习第十三天笔记-面向对象246-继承中成员方法和成员变量的特点-成员变量的访问特点小练习
66 0
java学习第十三天笔记-面向对象246-继承中成员方法和成员变量的特点-成员变量的访问特点小练习
|
Java
java学习第十三天笔记-面向对象245-继承中成员方法和成员变量的特点-成员变量的访问特点
java学习第十三天笔记-面向对象245-继承中成员方法和成员变量的特点-成员变量的访问特点
97 0
java学习第十三天笔记-面向对象245-继承中成员方法和成员变量的特点-成员变量的访问特点
|
Java
java学习第十三天笔记-面向对象248-继承中成员方法和成员变量的特点-成员方法的访问特点验证
java学习第十三天笔记-面向对象248-继承中成员方法和成员变量的特点-成员方法的访问特点验证
58 0
java学习第十三天笔记-面向对象248-继承中成员方法和成员变量的特点-成员方法的访问特点验证