文章目录
一、Groovy 支持 Java 语法
二、Groovy 支持 Java 虚拟机
三、Groovy 语言是 动态语言
四、Groovy 扩展 JDK
五、Groovy 编译时元编程
一、Groovy 支持 Java 语法
Groovy 语言与 Java 语言可以无缝衔接 , 在 Groovy 中 , 可以 完全使用 Java 语法进行开发 ;
从 " 能否使用 Java 语法 " 角度出发 , Groovy 语言比 Kotlin 语言更方便 , Kotlin 中无法使用 Java 语法 , 而 Groovy 可以 , 因此 Java 开发者直接就可以进行 Groovy 开发 ;
二、Groovy 支持 Java 虚拟机
Groovy 语言是 基于 Java 虚拟机的 ;
Groovy 即可以实现 面向对象 编程开发 , 又可以进行 独立脚本开发 ;
三、Groovy 语言是 动态语言
Groovy 是一门 动态语言 , 与之相对的 , Java 是一门静态语言 ; 具体就是 在声明变量前 , Java 语言必须声明该变量的类型 , 而在 动态语言中 , 在 运行时才检查变量类型 , 声明变量时 , 可以暂时不指定变量类型 ;
Groovy 使用 def 声明变量 , 在声明时 , 可以暂时不指定变量类型 ;
动态语言 中 变量的具体类型 , 取决于为其赋值的类型 , 如果为 变量设置 字符串 , 则该变量就是字符串类型 ; 如果为 变量 赋值 1 , 则该变量的类型就是 int 类型 ;
Kotlin 也是一门动态语言 , 使用 var 声明变量 ;
四、Groovy 扩展 JDK
在 Groovy 中 , 可以使用 JDK 中的所有 API , 同时还可以对 JDK 中的 API 进行扩展 ;
如 : 在 Java 中读取文件 , 首先要创建 File 对象 , 然后获取输入流 FileInputStream , 使用缓冲区读取 , 这个操作步骤很繁琐 ;
对上述 File 读取文件进行 API 扩展 , 可以使用一行代码 , 读取文件中的数据 , 相当于开发了一个读取文件的工具类 ;
五、Groovy 编译时元编程
Groovy 可以实现 编译时元编程 , 类似于编译时技术 APT 中的 注解处理器 ;
在编译工程时 , 可以动态执行 注入方法 , 拦截方法 , 合成方法 , 委托方法 等 操作 ;
如 : 编译时 , 从服务器获取一个方法 , 借助 Groovy 元编程 , 可以将该方法动态地插入到 Groovy 方法中执行 ;
一些收费的 API 函数库 , 可以借助该方法 , 实现 API 的加密操作 ; 如 : 编译时 , 从服务器获取密钥 , 对比本地的密钥是否合法 , 确定是否要进行后续编译过程 ;