Groovy 1.5的新特性
http://tech.ddvip.com 2008年01月22日 社区交流
内容摘要:Groovy,针对JVM的类Java动态语言,主要增强了对于Java 5特征的支持,包括注解、泛型和枚举,框架包括Spring,Hibernate,JPA,Goole Guice或者TestNG。
Hotel实体用@Entity注解来标识,用@Name给了它一个名字。可以向你的注解传递不同的参数,例如在@Length注解约束中,为了做有效性检查可以给注解设置不同的上界和下界。在实例中你还会注意到Groovy的属性:getter方法和setter方法都到哪里去了?公有或者私有的修饰符在哪里?你不必等待Java 7或者Java 8来获得属性!在Groovy中,按照惯例,定义一个属性非常简单:String country:这样就会自动生成一个私有的country成员变量,同时生成一个公有的getter和setter方法。你的代码自然而然的变得简洁而易读。
在Groovy中,注解可以象在Java中一样用在类、成员变量、方法和方法参数上。但是,有两个很容易犯错误的地方需要小心。第一,你可以在Groovy中用注解,可是你不能定义它们 —— 然而,在一个快要到来的Groovy版本中将可以定义注解。第二,虽然Groovy的语法几乎与Java的语法100%相同,但是在注解中传入一个数组作为参数时还是有一点点不同:Groovy不是用圆括号来括起元素,而是需要使用方括号,目的是为了提供更一致的语法 —— 在Groovy中列表和数组都用方括号来括起他们的元素。
通过Groovy1.5中的注解,你可以在Groovy中方便地为JPA或者Hibernate定义你的的带注解的bean(http://www.curious-creature.org/2007/03/25/persistence-made-easy-with-groovy-and-jpa/),在你的Spring服务上增加一个@Transactional 注解,使用TestNG和Fest来测试你的Swing UI(http://www.jroller.com/aalmiray/entry/testing_groovy_uis_with_fest)。在Groovy项目中你可以使用所有支持注解的有用而强大的企业框架。
枚举
当你需要一组固定数量的相同类型的常量时,枚举是很方便的。例如你需要一种干净的方式来为日期定义常量而不借助使用整数常量,那么枚举是你的好帮手。下面的片断显示了如何定义一星期中的日子:
来源:InfoQ中文站 作者:曹云飞 责编:豆豆技术应用