简单描述java-Groovy 2.0静态类型检查及编译功能介绍
2013-01-05 16:06
393 查看
Groovy开发团队近日发布了2.0的版本,Groovy是基于Java虚拟机(JVM),属于一种动态、面向对象的编程语言,尽管是一门动态语言,但是新版本加入了静态类型检查器和可选的静态编译应用程序的某些部分的功能,Groovy2.0还包括了语法加强、更加模块化、能充分利用JDK7的动态调用(invoked dynamic)等特性。
因为很多Java开发者使用Groovy作为一种扩展语言嵌套使用,Groovy因静态类型检查特性的加入使得开发者就能像使用Java一样在编译的时候看到错误消息,如果开发者在代码中使用@TypeChecked注解,Groovy编译器将在编译阶段执行静态类型检查,指出明显的错误如变量名称输入错误等,静态类型检查器同样可以验证返回值。开发者可以混合静态类型方法和该语言的动态特性以及可选的类型检查,这些都得益于Groovy的动态特性。
Groovy2.0支持JDK7的动态调用特性,当使用JDK7版本时此特性增强了Groovy的动态调用的性能。因为JDK7可以广泛的部署,Groovy开发团队增加了新的@CompileStatic转换,使之包含了静态类型检查代码的特性,这个版本的Groovy还包括了来自于Project Coin项目的一些语法增强。
为了让Groovy更加模块化,Groovy2.0分拆了最初的Groovy Jar 文件,由多个小模块组织起来,这使得核心Groovy JAR文件大小减少一半,因此而更加可移植。用户现在可以只选取必要的模块放到他们的程序中,这样开发的好处就是支持模块的扩展。Groovy的模块现在可以提供方法给其他类使用,包括JDK或者其他的库,这些扩展的方法是完全支持的,而且能被静态类型检查器和编译器所理解。
开发团队最初计划发布这个版本叫1.9,但是此版本大量的新特性让他们改变了想法,因此而命名为Groovy2.0.
从现在起,开发团队计划每年发布一个主要的版本,Groovy3.0将在明年发布。
关于这个发布的更多细节信息可以在InfoQ上Groovy项目负责人Guillaume Laforge的一篇文章 找到。Groovy2.0可以在基于Apache2.0许可协议下的条件下从Codehaus.org下载。
因为很多Java开发者使用Groovy作为一种扩展语言嵌套使用,Groovy因静态类型检查特性的加入使得开发者就能像使用Java一样在编译的时候看到错误消息,如果开发者在代码中使用@TypeChecked注解,Groovy编译器将在编译阶段执行静态类型检查,指出明显的错误如变量名称输入错误等,静态类型检查器同样可以验证返回值。开发者可以混合静态类型方法和该语言的动态特性以及可选的类型检查,这些都得益于Groovy的动态特性。
Groovy2.0支持JDK7的动态调用特性,当使用JDK7版本时此特性增强了Groovy的动态调用的性能。因为JDK7可以广泛的部署,Groovy开发团队增加了新的@CompileStatic转换,使之包含了静态类型检查代码的特性,这个版本的Groovy还包括了来自于Project Coin项目的一些语法增强。
为了让Groovy更加模块化,Groovy2.0分拆了最初的Groovy Jar 文件,由多个小模块组织起来,这使得核心Groovy JAR文件大小减少一半,因此而更加可移植。用户现在可以只选取必要的模块放到他们的程序中,这样开发的好处就是支持模块的扩展。Groovy的模块现在可以提供方法给其他类使用,包括JDK或者其他的库,这些扩展的方法是完全支持的,而且能被静态类型检查器和编译器所理解。
开发团队最初计划发布这个版本叫1.9,但是此版本大量的新特性让他们改变了想法,因此而命名为Groovy2.0.
从现在起,开发团队计划每年发布一个主要的版本,Groovy3.0将在明年发布。
关于这个发布的更多细节信息可以在InfoQ上Groovy项目负责人Guillaume Laforge的一篇文章 找到。Groovy2.0可以在基于Apache2.0许可协议下的条件下从Codehaus.org下载。
相关文章推荐
- 【Groovy 2.0静态类型检查及编译功能介绍】
- Java静态检测工具/Java代码规范和质量检查简单介绍(转)
- JAVA 泛型的 raw 类型带来的其 【编译时类型检查功能丧失】
- JAVA基本数据类型简单介绍
- Java反射技术绕过ArrayList泛型编译期间检查, 将不同类型数据存到一起
- 使用Java实现简单的server/client回显功能的方法介绍
- Java静态检测工具的简单介绍 - Sonar、Findbugs
- Java基本数据类型,及其简单介绍
- 精通Groovy_A 介绍, 与Java对比, 入门, 没有类型
- java va中工厂模式( 静态工厂模式、工厂方法模式、抽象工厂模式)的介绍以及简单例子
- Java静态检测工具的简单介绍
- 简易Java(04):Java如何进行静态类型检查?
- C++ 是一门静态类型语言,在编译时会作类型检查
- Java静态检测工具的简单介绍 - Sonar、Findbugs
- JavaScript的String类型replace()方法介绍和使用replace()方法实现简单html模板替换功能
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。
- Java中静态代码块与构造代码块的简单介绍
- JAVA 文件编译执行与虚拟机(JVM)简单介绍
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。
- [原创]Java静态代码检查工具介绍