4、与Java的不同
(1)通用
l 在Groovy中,==等价于equals(),===意味着标识比较(等同Java中的==)
l 在Java中==意味着原类型的相等和对象的标识比较,如a==b(a和b是指向相同对象的引用)
l 传递闭包给方法或使用GroovyMarkup时,{要和方法的调用在同一行上,如:
[1, 2, 3].each { println it }
l 如果要将{放在独立于方法的一行上,要使用括号()
[1, 2, 3].each (
{ println it }
)
l 下面的写法是无效的,会将闭包解释成独立的闭包,而不会将闭包作为方法的参数传递
[1, 2, 3].each
{
println it
}
(2)应该意识到的事情
l 语句后面的分号是可选的,但在同一行上有多个语句需要用分号分隔
l return关键字可选
l 可以在static方法内使用_this_关键字(何用?)
l 缺省的修饰符是public
l Groovy中的protected等价包的protected和Java的protected
l 补充:方法调用时,括号是可选的
(3)在Java中无效的Groovy新特性
l 闭包
l List和Map的本地语法
l GroovyMarkup和Gpath的支持
l 正则表达式的本地支持
l 多形式的iteration和强大的switch语句
l 动态和静态类型的支持
l 在字符串中嵌入表达式
l 增加了许多新的帮助方法
l 在属性和添加事件侦听方面,简化了编写bean的语法
本文地址:http://com.8s8s.com/it/it15311.htm