`
韩悠悠
  • 浏览: 839752 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Commons Collections - Transformer组 补充

 
阅读更多

// 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也可以有不同的实现,因为它们之间实际上完全是相互独立的。这就使我们有效的分离了逻辑和具体业务。

 

 

 

分享到:
评论

相关推荐

    commons-collections-3.2.1-bin

    Apache Commons Collections是一个Java库,它提供了对集合框架的扩展,增加了许多实用功能,极大地丰富了Java编程中的数据处理能力。这个"commons-collections-3.2.1-bin"压缩包包含的是Apache Commons Collections ...

    commons-collections-3.2.1.jar

    《Apache Commons ...总之,Apache Commons Collections 3.2.1为Java开发者提供了强大的集合操作工具,是Java集合框架的有力补充。无论是简化常见的集合任务,还是实现复杂的算法,这个库都是一个不可或缺的资源。

    commons.collections-3.2.1和commons-beanutils-1.9.2和commons.collections-3.2.1

    Commons Collections和Apache BeanUtils是Java开发中常用的两个库,它们为开发者提供了丰富的工具类和功能,使得处理集合对象和Bean属性变得更加便捷。这两个库在Java Web开发中扮演着重要角色,尤其是在构建MVC框架...

    commons-collections4-4.1.jar

    Commons Collections是Apache软件基金会开发的一个Java库,主要提供对集合框架的增强和扩展。这个库是Java标准集合接口的补充,增加了许多实用的功能,提高了代码的可读性和效率。"commons-collections4-4.1.jar"是...

    commons-collections-3.2.1.rar代码及原jar文件

    Apache Commons Collections是一个强大的Java集合框架扩展库,它提供了对Java内置集合类的增强功能和新的数据结构。在本文中,我们将深入探讨`commons-collections-3.2.1`版本的相关知识点。 首先,`commons-...

    commons-collections-3.2源码包

    《Apache Commons Collections 3.2源码解析》 Apache Commons Collections是Java开发中不可或缺的工具库,它极大地扩展了Java的内置集合框架,为开发者提供了更丰富的数据结构和算法实现。这个源码包,名为"commons...

    commons-collections-3.2.1-src.zip

    《Apache Commons Collections 深入解析》 Apache Commons Collections 是一个功能丰富的 Java 库,它扩展了 Java 核心库中的集合框架,提供了大量的实用工具类和算法,为开发人员在处理各种数据结构时提供了极大的...

    commons-collections4-4.1-bin.zip

    Apache Commons Collections是一个强大的Java集合框架扩展库,它提供了大量的接口和类来增强Java的内置集合。这个"commons-collections4-4.1-bin.zip"压缩包包含了Apache Commons Collections的源码和jar包,版本为...

    commons-collections4-4.0.rar

    Apache Commons Collections是一个强大的Java集合框架的扩展库,它为Java的内置集合类提供了大量实用工具和接口,极大地丰富了集合操作的功能。这个"commons-collections4-4.0.rar"文件是Apache Commons Collections...

    commons-collections-3 jar

    《Apache Commons Collections 3详解》 Apache Commons Collections(简称Collections)是Apache软件基金会开发的一个Java类库,它为Java集合框架提供了丰富的扩展和实用工具。本文将深入探讨`commons-collections-...

    commons-collections4-4.4-bin.tar.gz

    Apache Commons Collections 4.4是Java开发人员常用的一个开源库,它是Apache软件基金会的一个项目,提供了许多实用的集合框架扩展,极大地丰富了Java标准库中集合类的功能。这个版本是4.4,属于项目的最新稳定版,...

    commons-collections4-4.0

    Apache Commons Collections是一个非常重要的Java库,它为Java集合框架提供了大量的扩展和实用工具。这个库被称为"commons-collections4-4.0",表明它是Apache Commons Collections的第4个主要版本,版本号为4.0。这...

    commons-collections4-4.4.rar

    《Apache Commons Collections 4.4:Java编程的强大工具》 Apache Commons Collections,简称Collections,是Apache软件基金会开发的一个Java库,旨在提供对Java集合框架的扩展和增强。这个库包含了丰富的算法实现...

    commons-collections-3.1.zip

    3. `org.apache.commons.collections.buffer`:提供了一组数据缓冲区(Buffer)的实现,如BoundedBuffer和FixedSizeBuffer,它们可以用于临时存储和处理数据。 4. `org.apache.commons.collections.iterators`:...

    Apache commons-collections4-4.1 Src压缩包

    Apache Commons Collections是一个强大的Java库,它是Apache软件基金会的一部分,专门用于增强Java的集合框架。这个库提供了大量的实用工具类和算法,扩展了Java标准库中集合接口的功能,使得开发人员可以更加高效、...

    commons-collections4-4.4-bin.zip

    Apache Commons Collections是一个Java库,它提供了对集合框架的扩展,增加了许多实用功能。这个库的主要目标是增强Java标准集合接口的灵活性、性能和功能性。在"commons-collections4-4.4-bin.zip"中,我们获得了...

    aduna-commons-collections-2.7.0.jar.zip

    《Aduna Commons Collections 2.7.0:Java编程中的集合框架增强库》 Aduna Commons Collections 是一个基于 Java 的开源库,它扩展了 Java 标准库中的集合框架,提供了更多的数据结构、算法和实用工具类。这个库在 ...

    commons-collections

    "commons-collections"是Apache软件基金会的一个开源项目,它提供了一系列强大的、实用的集合框架扩展,使得在Java编程中处理集合对象变得更加方便和灵活。这个jar包包含了多种实用的工具类和接口,扩展了Java标准...

    Apache Commons Collections 4.0 API+jar包

    Apache Commons Collections 4.0 API 是一个非常重要的Java库,它是Apache软件基金会开发的一个开源项目。这个库提供了大量的集合框架的扩展,使得开发者能够更高效、便捷地处理各种数据结构和算法。Apache Commons ...

Global site tag (gtag.js) - Google Analytics