WEB开发网
开发学院软件开发Java 实战 Groovy: Groovy 的腾飞 阅读

实战 Groovy: Groovy 的腾飞

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 认识这个代码吗?它借用来自“在 Java 应用程序中加一些 Groovy 进来 ”一文的清单 1 中的代码,在清单 3 中,实战 Groovy: Groovy 的腾飞(4),可以看到运行代码时弹出的错误消息:清单 3. 错误消息c:\dev\projects>gro

认识这个代码吗?它借用来自“在 Java 应用程序中加一些 Groovy 进来 ”一文的清单 1 中的代码。在清单 3 中,可以看到运行代码时弹出的错误消息:


清单 3. 错误消息
c:\dev\projects>groovy BusinessObjects.groovy 
 
 BusinessObjects.groovy: 13: The variable numstr is undefined in the current scope 
 @ line 13, column 4. 
   numstr = new StringBuffer() 
   ^ 
1 Error 

当然,解决方案也是在 toString 方法中将 def 关键字添加到 numstr。清单 4 显示了这个更合适的 def 解决方案。


清单 4. 用 def 重新处理
 String toString(){ 
  
  def numstr = new StringBuffer() 
 
  if (contactNumbers != null){ 
  contactNumbers.each{ 
 numstr.append(it) 
 numstr.append(" ") 
  } 
  } 
  
  "first name: " + fname + " last name: " + lname + 
 " age: " + age + " address: " + address + 
 " contact numbers: " + numstr.toString() 
 } 

另外,我还可以为 numstr 提供一个像 private 这样的修饰符,或者将它声明为 StringBuffer。不论哪种方法,重要的一点是:在 JSR Groovy 中,必须在变量前加上某些东西。

封闭闭包(closure)

闭包的语法发生了变化,但是大多数变化只与参数有关。在经典的 Groovy 中,如果为闭包声明参数,就必须用 | 字符作为分隔符。您可能知道,| 也是普通 Java 语言中的位操作符;结果,在 Groovy 中,只有在某个闭包的参数声明的上下文中,才能使用 | 字符。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:实战 Groovy Groovy

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