实战 Groovy: @Delegate 注释
2009-09-28 00:00:00 来源:WEB开发网首先,使用一个 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 展示了这样一个测试:
- ››Groovy轻松入门
- ››实战:企业使用交换机VLAN路由配置
- ››实战案例分析:高质量软文对网站百度排名的影响
- ››实战经验浅谈网站搬家后的优化工作
- ››实战Active Directory站点部署与管理,Active Dir...
- ››实战操作主机角色转移,Active Directory系列之十...
- ››实战经验:巧用微博推广淘宝网店
- ››实战iPhone GPS定位系统
- ››实战Linux环境配置DBD:Oracle模块
- ››实战DeviceIoControl系列之一:通过API访问设备驱...
- ››实战DeviceIoControl系列之二:获取软盘/硬盘/光盘...
- ››实战DeviceIoControl系列之三:制作磁盘镜像文件
更多精彩
赞助商链接