Apache Groovy 3.0到货了,它包含了许多新功能,这些功能使其更加灵活并与更新的Java功能集成。 对于初学者来说,它包括一个新的默认解析器(当前在代号Parrot下),并支持Java样式的Lambda语法。
Groovy是Java语法兼容的面向对象语言。 凭借其熟悉的语法并通过在JVM之上工作,可以轻松地与任何Java程序直接集成。 尽管Groovy目前不像使用JVM的年轻语言那样受欢迎,例如Kotlin,但3.0版引入了一些新的变化,可能会改变现状。
那么,是时候在2020年再次淘汰Groovy吗?
还请参见: 与OutOfMemoryError相关的JVM参数
遇见鹦鹉。
v3.0.0的最大亮点是新的解析器Parrot。 在后台,它更加灵活和可维护,并包括对其他语法和语言功能的支持。 Parrot包括当前所有语言功能,但同时也增加了一些新功能。
从GitHub上的新解析器的README中 ,这些新功能包括:
- 做循环 增强的(现在支持逗号)经典for循环,例如
for(int i = 0, j = 10; i < j; i++, j--) {..}
)- Lambda表达式,例如
stream.map(e -> e + 1)
- 方法引用和构造函数引用
- 尝试资源,又名ARM
- 代码块,即
{..}
- Java样式数组初始化程序,例如
new int[] {1, 2, 3}
- 接口内的默认方法
- 类型注释的其他位置
- 新运算符:身份运算符(
===
,!==
),猫王分配(?=
),!!in
,!instanceof
- 安全索引,例如
nullableVar?[1, 2]
- 非静态内部类实例化,例如
outer.new Inner()
- 运行时groovydoc,即以
/**@
开头的groovydoc; groovydoc作为元数据附加到AST节点
在3.0中,新的解析器默认情况下处于启用状态,必要时可以通过系统属性禁用。 在将来的Groovy版本中,旧的解析器将被弃用,然后将其删除。
从存储库中,一定要阅读由Apache Groovy PMC成员Daniel Sun撰写的Groovy 3更改的公开讨论 。
嵌入式Groovydocs
在3.0中,Groovy从Ruby等语言中汲取了灵感。 用户现在可以通过几种不同的方式嵌入Groovydocs。 (经过改进的工具仍在开发中。)
- 可以在AST中使用Groovydocs并将其存储为节点元数据。 用户可以使用
groovy.attach.groovydoc
系统属性或CompilerConfiguration
的标志启用此功能。 - 任何以
/**@
开头注释分隔符开头的Groovydoc注释都可以嵌入到类文件中,并存储在@Groovydoc注释中。 用户可以使用groovy.attach.runtime.groovydoc
系统属性或CompilerConfiguration
的标志启用此功能。
还请参见: 2020年顶级Java技术– JVM编程语言,IDE,工具等
Groovy 4?
在查看v3.0时,该语言已经领先于自己。 根据v3.0的发行说明 ,“ Groovy 3正在进行更改,以使代码库朝符合规则的方向发展,并允许Groovy用户开始迁移过程。 Groovy 4是我们的目标版本,用于完全兼容的工件,但是您可以在使用Groovy 3的同时提前准备好类 。
开发团队期望Groovy 4的Alpha版本很快发布。
升级到最新版本
无论您一直在使用Groovy,还是希望查看新功能并查看它与更常用的替代品的比较,请查看3.0版。 作为先决条件,您将需要JDK9 +才能进行构建。
查看下载页面,并遵循几种获取groovin的方法之一。