// transformer setup
Transformer developerTransformer = new Transformer() {
public Object transform(Object obj) {
Applicant app = (Applicant) obj;
return new Employee(
app.getName(), app.getAge(), new Date(), "E4", 2000
);
}
};
Transformer testerTransformer = new Transformer() {
public Object transform(Object obj) {
Applicant app = (Applicant) obj;
return new Employee(
app.getName(), app.getAge(), new Date(), "E4", 2000
);
}
};
Transformer pmTransformer = new Transformer() {
public Object transform(Object obj) {
Applicant app = (Applicant) obj;
return new Employee(
app.getName(), app.getAge(), new Date(), "E5", 3000
);
}
};
Transformer[] transformers = new Transformer[] {
developerTransformer,
testerTransformer,
pmTransformer
};
// transform
Transformer employTransformer = new SwitchTransformer(
checkApplyFor, transformers, null
);
Collection employed = CollectionUtils.collect(appList, employTransformer);
// output
System.out.println("Applicants: ");
Iterator iter1 = appList.iterator();
while (iter1.hasNext()) {
System.out.println(iter1.next());
}
System.out.println("Employed: ");
Iterator iter2 = employed.iterator();
while (iter2.hasNext()) {
System.out.println(iter2.next());
}
System.out.println(StringUtils.repeat("=", 40));
}
}
以下是运行结果:
========= demoTransformerUsage =========
Applicants:
Applicant[name=Tony,age=26,applyFor=Developer]
Applicant[name=Michelle,age=24,applyFor=Tester]
Applicant[name=Jack,age=28,applyFor=Project Manager]
Employed:
Employee[name=Tony,age=26,dateJoined=2005-08-05,grade=E4,salary=2000.0]
Employee[name=Michelle,age=24,dateJoined=2005-08-05,grade=E4,salary=2000.0]
Employee[name=Jack,age=28,dateJoined=2005-08-05,grade=E5,salary=3000.0]
========================================
我们首先定义一组Predicate,用于在SwitchTransformer中判断采用那个具体的Transformer,这个具体的Transformer也是通过数组同时传递给SwitchTransformer的构造方法的。不同的Predicate可以有不同的实现,不同的Transformer也可以有不同的实现,因为它们之间实际上完全是相互独立的。这就使我们有效的分离了逻辑和具体业务。
分享到:
相关推荐
Apache Commons Collections是一个Java库,它提供了对集合框架的扩展,增加了许多实用功能,极大地丰富了Java编程中的数据处理能力。这个"commons-collections-3.2.1-bin"压缩包包含的是Apache Commons Collections ...
《Apache Commons ...总之,Apache Commons Collections 3.2.1为Java开发者提供了强大的集合操作工具,是Java集合框架的有力补充。无论是简化常见的集合任务,还是实现复杂的算法,这个库都是一个不可或缺的资源。
Commons Collections和Apache BeanUtils是Java开发中常用的两个库,它们为开发者提供了丰富的工具类和功能,使得处理集合对象和Bean属性变得更加便捷。这两个库在Java Web开发中扮演着重要角色,尤其是在构建MVC框架...
Commons Collections是Apache软件基金会开发的一个Java库,主要提供对集合框架的增强和扩展。这个库是Java标准集合接口的补充,增加了许多实用的功能,提高了代码的可读性和效率。"commons-collections4-4.1.jar"是...
Apache Commons Collections是一个强大的Java集合框架扩展库,它提供了对Java内置集合类的增强功能和新的数据结构。在本文中,我们将深入探讨`commons-collections-3.2.1`版本的相关知识点。 首先,`commons-...
《Apache Commons Collections 3.2源码解析》 Apache Commons Collections是Java开发中不可或缺的工具库,它极大地扩展了Java的内置集合框架,为开发者提供了更丰富的数据结构和算法实现。这个源码包,名为"commons...
《Apache Commons Collections 深入解析》 Apache Commons Collections 是一个功能丰富的 Java 库,它扩展了 Java 核心库中的集合框架,提供了大量的实用工具类和算法,为开发人员在处理各种数据结构时提供了极大的...
Apache Commons Collections是一个强大的Java集合框架扩展库,它提供了大量的接口和类来增强Java的内置集合。这个"commons-collections4-4.1-bin.zip"压缩包包含了Apache Commons Collections的源码和jar包,版本为...
Apache Commons Collections是一个强大的Java集合框架的扩展库,它为Java的内置集合类提供了大量实用工具和接口,极大地丰富了集合操作的功能。这个"commons-collections4-4.0.rar"文件是Apache Commons Collections...
《Apache Commons Collections 3详解》 Apache Commons Collections(简称Collections)是Apache软件基金会开发的一个Java类库,它为Java集合框架提供了丰富的扩展和实用工具。本文将深入探讨`commons-collections-...
Apache Commons Collections 4.4是Java开发人员常用的一个开源库,它是Apache软件基金会的一个项目,提供了许多实用的集合框架扩展,极大地丰富了Java标准库中集合类的功能。这个版本是4.4,属于项目的最新稳定版,...
Apache Commons Collections是一个非常重要的Java库,它为Java集合框架提供了大量的扩展和实用工具。这个库被称为"commons-collections4-4.0",表明它是Apache Commons Collections的第4个主要版本,版本号为4.0。这...
《Apache Commons Collections 4.4:Java编程的强大工具》 Apache Commons Collections,简称Collections,是Apache软件基金会开发的一个Java库,旨在提供对Java集合框架的扩展和增强。这个库包含了丰富的算法实现...
3. `org.apache.commons.collections.buffer`:提供了一组数据缓冲区(Buffer)的实现,如BoundedBuffer和FixedSizeBuffer,它们可以用于临时存储和处理数据。 4. `org.apache.commons.collections.iterators`:...
Apache Commons Collections是一个强大的Java库,它是Apache软件基金会的一部分,专门用于增强Java的集合框架。这个库提供了大量的实用工具类和算法,扩展了Java标准库中集合接口的功能,使得开发人员可以更加高效、...
Apache Commons Collections是一个Java库,它提供了对集合框架的扩展,增加了许多实用功能。这个库的主要目标是增强Java标准集合接口的灵活性、性能和功能性。在"commons-collections4-4.4-bin.zip"中,我们获得了...
《Aduna Commons Collections 2.7.0:Java编程中的集合框架增强库》 Aduna Commons Collections 是一个基于 Java 的开源库,它扩展了 Java 标准库中的集合框架,提供了更多的数据结构、算法和实用工具类。这个库在 ...
"commons-collections"是Apache软件基金会的一个开源项目,它提供了一系列强大的、实用的集合框架扩展,使得在Java编程中处理集合对象变得更加方便和灵活。这个jar包包含了多种实用的工具类和接口,扩展了Java标准...
Apache Commons Collections 4.0 API 是一个非常重要的Java库,它是Apache软件基金会开发的一个开源项目。这个库提供了大量的集合框架的扩展,使得开发者能够更高效、便捷地处理各种数据结构和算法。Apache Commons ...