WEB开发网
开发学院软件开发Java 实战 Groovy: @Delegate 注释 阅读

实战 Groovy: @Delegate 注释

 2009-09-28 00:00:00 来源:WEB开发网   
核心提示: 首先,使用一个 ArrayList 委托创建 FixedList 类,实战 Groovy: @Delegate 注释(7),如清单 9 所示,groovyc / javap 是否可以检验 FixedList 不仅提供了与 ArrayList 相同的方法, 使用 GroovyTestCase 测试

首先,使用一个 ArrayList 委托创建 FixedList 类,如清单 9 所示。groovyc / javap 是否可以检验 FixedList 不仅提供了与 ArrayList 相同的方法,还提供了相同的接口。

清单 9. 第一步创建 FixedList 类

class FixedList{
  @Delegate private List list = new ArrayList()
  final int sizeLimit
  
  /**
    * NOTE: This constructor limits the max size of the list,
    *  not just the initial capacity like an ArrayList.
    */
  FixedList(int sizeLimit){
    this.sizeLimit = sizeLimit
  }
}  
$ groovyc FixedList.groovy
$ javap FixedList
Compiled from "FixedList.groovy"
public class FixedList extends java.lang.Object 
             implements java.util.List,java.lang.Iterable,
             java.util.Collection,groovy.lang.GroovyObject{
    public FixedList(int);
    public java.lang.Object[] toArray(java.lang.Object[]);
    //snip..

目前我们还没有对 FixedList 的大小做任何限制,但这是一个很好的开始。如何确定 FixedList 的大小此时并不是固定的?您可以编写一些用后即扔的样例代码,但是如果 FixedList 将投入到生产中,您最好立即为其编写一些测试用例。

使用 GroovyTestCase 测试 @Delegate

要开始测试 @Delegate,编写一个单元测试,验证您可以将比您实际可添加的更多元素添加到 FixedList。清单 10 展示了这样一个测试:

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

Tags:实战 Groovy Delegate

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