具有Java 7和8语法的Apache Groovy

由于Apache Groovy 2.6(最新版本在2017年11月16日为2.6.0-alpha-2),它可以使用Java8中的Lambda语法和Java 7中的try-with-resources。 Groovist像这些功能一样经常使用(关闭) 但是适应Java的语法对于吸引尚未使用Apache Groovy的Java开发人员来说非常重要。

安装Apache Groovy,然后从以下位置更改文件名Foo。java至Foo。groovy并简单地执行常规。 Java Developer equals Apache Groovy Developer again since Apache Groovy 2。6。

但是此功能在Apache Groovy上尚不标准。 Apache Groovy 2.6可选地支持,默认情况下支持Apache Groovy 3。 Apache Groovy 2.6尚处于Alpha阶段。 但是已经出来了 我们可以测试一下!

Install Apache Groovy 2.6

通过sdkman安装。 Apache Groovy 2.6尚未默认支持Java8语法 It have to be specified an option -Dgroovy.antlr4 = true通过执行常规。

[koji:~]$ sdk install groovy 2.6.0-alpha-2 
[koji:~]$ sdk use groovy 2.6.0-alpha-2

# to activate Java7/9 syntax.
[koji:~]$ groovyConsole -Dgroovy.antlr4=true&


# of course you can JAVA_OPTS.
[koji:~]$ echo $JAVA_OPTS

[koji:~]$ export JAVA_OPTS="-Dgroovy.antlr4=true"
[koji:~]$ echo $JAVA_OPTS
-Dgroovy.antlr4=true
[koji:~]$ groovyConsole&

try-with-resources

def file = new File("/tmp/test.txt")

/*
def fileReader = file.newReader()
println fileReader.ready()
fileReader.close()
println fileReader.ready() // java.io.IOException: Stream closed. of ocurse :)
*/

// try-with-resources ! Since Apache Groovy 2.6 can use!
try(BufferedReader br = file.newReader()) {
    br.eachLine {
        println it
    }
} catch(Exception e) {
    println e
}

// Normal Groovy way!
file.withReader {BufferedReader br ->
    br.eachLine {
        println it
    }
}

Use Lambda

// Lamda syntax is available!
java.util.function.Function<Integer, String> test = (i) -> {"${i} !?"}
assert "123 !?" == test.apply(123)

// Lambda with streams.
List<Integer> list = [1,2,3,4,5]
assert [10, 8, 6, 4, 2] == list.stream().map((a) -> {a * 2}).sorted((a, b) -> { return b - a; }).collect()

// Normal Groovy way!
assert [10, 8, 6, 4, 2] == list.collect{it * 2}.sort{a,b -> b <=> a}

我比Java更喜欢Groovy风格。 但是,这个新的语法解析器对于Java开发人员学习Apache Groovy确实很有帮助。

from: https://dev.to//saba1024/apache-groovy-with-java-7-and-8-syntaxs-i5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值