Groovy Categories

在大多数情况下,给不是自己的定义的类中增加额外的方法是非常有用的。为此Groovy从Objective-C借鉴了这一特性,称之为Categories. 在当前的系统中,已经有一些categories了,将这些功能加入到类中,将在Groovy的环境中更加有用。

第一个category允许你将DOM对象看作arrays和maps,因此你可以以Groovy的路径表达式语言(Groovy path expression language,GPATH)来使用,将其看作是JavaBeans. 这里有一个使用DOMCategory测试的示例:

DOMTest.groovy

import groovy.xml.*
 
def html = DOMBuilder.newInstance().html {
  head {
    title (class:'mytitle', 'Test')
  }
  body {
    p (class:'mystyle', 'This is a test.')
  }
}
 
use (groovy.xml.dom.DOMCategory) {
  assert html.head.title.text() == 'Test'
  assert html.body.p.text() == 'This is a test.'
  assert html.find{ it.tagName == 'body' }.tagName == 'body'
  assert html.getElementsByTagName('*').grep{ it.'@class' }.size() == 2
}
 
try {
  html.head
} catch(MissingPropertyException mpe) {
  println "Categories wear off"
}
 
wiki/user_guide/groovy_categories.txt · 最后更改: 2008-06-22 21:45 由 agile.guo
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki