实战 Groovy: Groovy:Java 程序员的 DSL
2009-09-28 00:00:00 来源:WEB开发网清单 11. 从 Groovy 中调用 Java 类
JavaPerson jp = new JavaPerson(firstName:"John", lastName:"Doe")
println "Greetings, " + jp.getFirstName() + ".
It is a pleasure to make your acquaintance."
GroovyPerson gp = new GroovyPerson(lastName:"Smith", firstName:"Jane")
println "Howdy, ${gp.firstName}. How the heck are you?"
您首先可能会注意到,Groovy 提供的新构造函数允许您命名字段并按照所需顺序指定这些字段。甚至更有趣的是,可以在 Java 类或 Groovy 类中使用此构造函数。这怎么可能?事实上,Groovy 先调用默认的无实参构造函数,然后调用每个字段的相应 setter。您可以模拟 Java 语言中的类似行为,但是由于 Java 语言缺少命名实参并且两个字段都是 Strings,因此您无法按照任何顺序传入名字和姓氏字段。
接下来,注意 Groovy 支持传统的 Java 方法来执行 String 串联,以及在 String 中直接嵌入用 ${} 圈起的代码的 Groovy 方法(这些称为 GString,它是 Groovy Strings 的简写)。
最后,在类中调用 getter 时,您将看到使用 Groovy 语法的更多优点。您无需使用更冗长的 gp.getFirstName(),只需调用 gp.firstName。看上去您是在直接访问字段,但是事实上您在调用后台的相应的 getter 方法。Setter 将按照相同的方法工作:gp.setLastName("Jones") 和 gp.lastName = "Jones" 是等效的,后者将在后台调用前者。
我希望您也能够承认,在任何情况下,Groovy 都类似于简易版的 Java 语言 — “领域专家” 可能使用 Groovy “与同行进行有效地交流”,或者类似于老朋友之间随意的谈笑。
- ››Groovy轻松入门
- ››实战:企业使用交换机VLAN路由配置
- ››实战案例分析:高质量软文对网站百度排名的影响
- ››实战经验浅谈网站搬家后的优化工作
- ››实战Active Directory站点部署与管理,Active Dir...
- ››实战操作主机角色转移,Active Directory系列之十...
- ››实战经验:巧用微博推广淘宝网店
- ››实战iPhone GPS定位系统
- ››实战Linux环境配置DBD:Oracle模块
- ››实战DeviceIoControl系列之一:通过API访问设备驱...
- ››实战DeviceIoControl系列之二:获取软盘/硬盘/光盘...
- ››实战DeviceIoControl系列之三:制作磁盘镜像文件
更多精彩
赞助商链接