【Groovy】Groovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )
文章目录
- 一、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 的加密操作 ; 如 : 编译时 , 从服务器获取密钥 , 对比本地的密钥是否合法 , 确定是否要进行后续编译过程 ;
【Groovy】Groovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )相关推荐
- 【Groovy】编译时元编程 ( ASTTransformation#visit 方法简介 | org.codehaus.groovy.ast.ModuleNode 脚本节点 )
文章目录 一.ASTTransformation#visit 方法简介 二.org.codehaus.groovy.ast.ModuleNode 脚本节点 一.ASTTransformation#vi ...
- 【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )
文章目录 一.编译时元编程引入 二.声明需要编译时处理的类 三.分析 Groovy 类的 AST 语法树 一.编译时元编程引入 在之前的 " [Groovy]MOP 元对象协议与元编程 &q ...
- 【Groovy】编译时元编程 ( 方法拦截时用到的 AST 语法树节点 MethodNode 节点 | MethodNode 节点分析 | MethodNode 节点中的BlockStatement)
文章目录 一.方法拦截时用到的 AST 语法树节点 MethodNode 节点 二.MethodNode 节点分析 三.MethodNode 节点中的 BlockStatement 集合 一.方法拦截 ...
- 【Groovy】编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )
文章目录 一.AST 语法树分析 一.AST 语法树分析 在上一篇博客 [Groovy]编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 ) ...
- 【Groovy】编译时元编程 ( 编译时方法注入 | 使用 buildFromSpec、buildFromString、buildFromCode 进行方法注入 )
文章目录 一.在 MyASTTransformation#visit 方法中进行方法注入 1.使用 new AstBuilder().buildFromSpec 进行方法注入 2.使用 new Ast ...
- 【Groovy】编译时元编程 ( 编译时方法拦截 | 在 MyASTTransformation#visit 方法中进行方法拦截 )
文章目录 一.在 MyASTTransformation#visit 方法中进行方法拦截 二.完整代码示例及进行编译时处理的编译过程 1.Groovy 脚本 Groovy.groovy 2.ASTTr ...
- 【Groovy】编译时元编程 ( 利用注解进行 AST 语法树转换 | 定义注解并使用 GroovyASTTransformationClass 注明 AST 转换接口 | AST 转换接口实现 )
文章目录 一.利用注解进行 AST 语法树转换 1.定义注解并使用 GroovyASTTransformationClass 注明 AST 转换接口 2.AST 转换接口实现 3.定义 Groovy ...
- 【Groovy】编译时元编程 ( ASTTransformation#visit 方法中访问 Groovy 类、方法、字段、属性 | 完整代码示例及进行编译时处理的编译过程 )
文章目录 一.ASTTransformation#visit 方法中访问 Groovy 类.方法.字段.属性 二.完整代码示例及进行编译时处理的编译过程 1.Groovy 脚本 Groovy.groo ...
- 【Groovy】编译时元编程 ( ASTTransformation#visit 方法获取 Groovy 源文件 )
文章目录 一.ASTTransformation#visit 方法获取 Groovy 源文件 二.完整代码示例 1.Groovy 脚本 Groovy.groovy 2.ASTTransformatio ...
最新文章
- 干货:排名前 16 的 Java 工具类!
- 将BYTE[] 输出到edit控件中
- 猛男把400+条猫咪叫声做成数据集,可识别猫咪的3种不同状态丨开源
- 微信小程序 wx:key 提示-解决
- 执行python文件报错SyntaxError: Non-ASCII character '\xe8' in file, but no encoding declared
- 菜鸟涂鸦作品展_No.27
- 华思视频 CCNA 听而思
- 如何找到odata服务实现的具体backend 系统
- ssh不能进入save方法_快速理清为什么你的redis未授权不能getshell
- 【C/C++】最大公约数和最小公倍数(辗转相除、更相减损、stein)
- MySql Workbench表PK UN UQ B等字符的含义
- 零基础怎么玩转可视化大屏?这个工具只需5步!
- 如何打造工业物联网帝国?
- shell 脚本随机抽取班级学生
- Maven安装教程详解
- 项目管理十大知识领域之项目整合管理
- instant java,java.time.Instant.compareTo()方法
- 服务器 虚拟机 融合,爱数AnyVM与VMware的全面融合
- marvin java_JAVA使用Marvin在图片中搜索图片
- ##英语文本的单词统计 排序并输出前5%