WEB开发网
开发学院软件开发Java 实战 Groovy: Groovy:Java 程序员的 DSL 阅读

实战 Groovy: Groovy:Java 程序员的 DSL

 2009-09-28 00:00:00 来源:WEB开发网   
核心提示: 清单 11. 从 Groovy 中调用 Java 类JavaPersonjp=newJavaPerson(firstName:"John",lastName:"Doe")println"Greetings,"+jp.getFirstNa

清单 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 “与同行进行有效地交流”,或者类似于老朋友之间随意的谈笑。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:实战 Groovy Groovy

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接