`
friendsys
  • 浏览: 352723 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Varargs Collection Factory Method 参数集合工厂方法

阅读更多
原文地址
http://www.c2.com/cgi/wiki?VarargsCollectionFactoryMethod

批注:比较短的一篇,中间使用了泛型,可变参数.需要Java1.5环境

如果DoubleBraceInitialization技巧中介绍的一样,Java在使用Collection上没有简单的语法,相比其他语言,Java创建一个集合需要大量的代码,这个技巧介绍的就是使用factory Methods去创建一个可变参数的集合获取方式.

原有Java代码模式
 Set<String> fruit = new HashSet<String>();
 fruit.add("banana");
 fruit.add("pear");
 fruit.add("apple");
 doSomethingWith(fruit);



你可以写一个factory 方法进行代替
<T> Set<T> setOf(T... things) {
     return new HashSet<T>(Arrays.asList(things));
 }


通过传入可变数量的参数,然后返回所需要的Set集合.

进行调用的方式

doSomethingWith(setOf("banana", "pear", "apple"));

另外一种变形的方法:
 <T> T populateCollection(Collection<T> c, T... things) {
     c.addAll(Arrays.asList(things));
     return c;
 }


调用方式
populateCollection(new ArrayList<String>(), "Meh", "Mlah", "Hmm");

这个是用的泛型较为复杂.

其他相关的技巧:
OnceAndOnlyOnce
http://www.c2.com/cgi/wiki?OnceAndOnlyOnce
DoubleBraceInitialization
http://www.c2.com/cgi/wiki?DoubleBraceInitialization


个人理解:这种方式在J2ME无法使用,需要在J2EE上合理的使用,灵活的使用了泛型提供的便利,能够节约不少代码,不过真正只使用字符串添加的机会并不多,关键还是数据获取部分的设计,这里只是提供了便利的集合获取方法,如果参数较多,那就不太适合了..








分享到:
评论

相关推荐

    设计模式之“工厂方法模式[Factory Method Pattern]”

    今天我们要探讨的是设计模式中的一个经典成员——工厂方法模式(Factory Method Pattern)。工厂方法模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。 ### 一、什么是工厂方法模式? 工厂方法模式...

    Java中Varargs机制的理解.docx

    1. **只能有一个Varargs参数**:在一个方法中只能声明一个Varargs参数,并且必须位于参数列表的末尾。 2. **Varargs参数的类型**:Varargs参数的类型必须是引用类型或原始类型。不可以使用自定义类或接口作为Varargs...

    C语言头文件 VARARGS

    C语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言...VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VAR

    Java Varargs 可变参数用法详解

    Java Varargs 可变参数是Java 1.5引入的一项特性,它允许我们在方法签名中定义一个可变数量的参数。这种技术使得方法能够接受任意数量的相同类型的参数,而无需为每个参数创建单独的参数位置。在Java中,可变参数...

    Java 实例 - Varargs 可变参数使用源代码-详细教程.zip

    Java中的可变参数(Varargs)是自Java 5引入的一项特性,它允许函数接受一个或多个同类型的参数。在编程中,有时我们可能需要创建一个方法,该方法可以接收不同数量的相同类型参数,例如打印日志、计算数组元素等。...

    Java 实例 - 重载(overloading)方法中使用 Varargs技术包含源代码和详细教程.zip

    本教程将深入探讨如何在重载方法中利用Varargs(可变参数)技术,这是一项非常实用的功能,能够使方法接受任意数量的相同类型参数。此资源包包含了相关的源代码实例和详细教程,帮助你更好地理解和应用这一概念。 ...

    设计模式 t02FactoryMethod

    "t02FactoryMethod" 指的是工厂方法(Factory Method)设计模式,它是面向对象设计中的一种经典模式。这个模式主要关注于如何创建对象,通过引入一个工厂接口或者抽象类,将对象的创建过程封装起来,使得具体的对象...

    JAVA简单异常处理(main方法中的args[]命令行参数传入两个操作数)

    编写程序,使用main方法中的args[]命令行参数传入两个操作数,进行除法运算, 要求对NumberFormatException类型的异常进行处理,并且自定义异常类OnlyOneOprandException与NoOprandException,并对之进行处理。

    工厂方法模式Java代码

    至于标签中的“FactoryMethod 将#”,可能是因为标签被不完整地输入了。通常,“#”用于标记话题或者关键词,这里可能是想表达“工厂方法模式”的话题。在Java中,工厂方法模式通常用于实现“开闭原则”,即软件实体...

    软件设计之工厂方法模式,源代码

    工厂方法模式(Factory Method Pattern)是一种常用的面向对象设计模式,属于创建型模式之一。它提供了一种创建对象的最佳方式。在工厂方法模式中,我们定义了一个用于创建对象的接口,但让子类决定实例化哪一个类。...

    设计模式工厂方法的代码演示

    工厂方法(Factory Method)作为设计模式中的一员,是创建型模式的一种,它提供了一种创建对象的最佳方式。在这个模式中,一个工厂类负责创建对象,而具体的创建过程则由子类来决定,从而实现了对创建过程的抽象。 ...

    VARARGS.H

    C标准库源码

    工厂方法模式[C#]

    工厂方法模式是设计模式中的一种创建型模式,它在面向对象编程中扮演着重要的角色。在C#中,我们可以利用这种模式来抽象产品的创建过程,将具体的实例化操作延迟到子类中进行,从而实现代码的解耦和扩展性。 1. **...

    设计模式-工厂方法代码

    通过这个压缩包中的`factorymethodpattern`文件,你可以更深入地了解如何在实际的Java代码中实现和应用工厂方法模式,包括具体的类定义、方法调用和运行逻辑。通过阅读和学习这段代码,你可以掌握如何在自己的项目中...

    C#集合容器(collection)详解

    ### C#集合容器(collection)详解 #### 一、集合的概念与分类 集合是C#语言中用于存储一组数据的一种机制,它可以是不同类型的对象。在.NET框架中,集合通过实现`System.Collections.ICollection`、`System....

    java工厂方法

    - **工厂接口(Factory)**:定义了创建产品的接口,通常只有一个抽象工厂方法。 - **具体工厂(Concrete Factory)**:实现了工厂接口,负责创建具体的产品对象。每个具体工厂对应一个具体产品。 3. **Java中的...

    C#中的简单工厂模式与工厂方法模式

    工厂方法模式(Factory Method Pattern)也是一种常用的创建型模式。它的核心思想是在基类中定义一个创建对象的接口,让子类决定实例化哪一个类。这种模式将实例化的工作推迟到子类去完成。 ##### 3.2 实现原理 ...

    Java集合框架Collection接口.pdf

    `Collection`接口是Java集合框架中的核心接口之一,它是所有集合类的根接口,提供了一系列用于操作集合的基本方法。通过这个接口,我们可以执行添加、删除、遍历集合元素等基本操作。 #### 三、Collection接口的...

Global site tag (gtag.js) - Google Analytics