技术开发 频道

用J2SE 5.0创建定制的泛型集合



【IT168 技术文档】

    J2SE 5.0引入了许多新型的集合API-你需要了解它们以便能够正确地实现泛型定制的集合-它可以无缝地与多种类型和新型的"for each"结构一起工作。本文将向你展示示怎样创建与J2SE最新特征相兼容的集合。

  一、 创建支持泛型的类

  首先,你必须学习如何创建一个允许存在"泛型类型"的类。这意味着无论何时实例化你的类,你都能够指定一个或多个Java类型与该类相关联。为了说明这个问题,请考虑列表1中的一个简单示例类。

  注意,列表1中的类是如何声明的。它在尖括号之间指定三个泛型。这些泛型是真实类型的占位符。当你声明一个这种类型的类时,你可以指定一个类来代替ONE,TWO和THREE。如果你不这样做,那么该类将使用Object的默认类型。

  这个类显示出怎样设计一个类来接收三个泛型类型。当你创建一个这种类型的类时你要支持准确的类型。

  列表1.泛型类:
package com.heatonresearch.examples.collections; public class Example<ONE, TWO, THREE> {  private ONE one;  private TWO two;  private THREE three;  public ONE getOne() { return one; }  public void setOne(ONE one) { this.one = one; }  public THREE getThree() { return three; }  public void setThree(THREE three) { this.three = three; }  public TWO getTwo() { return two; }  public void setTwo(TWO two) { this.two = two; }  public static void main(String args[]) {   Example<Double, Integer, String> example = new   Example<Double, Integer, String>();   example.setOne(1.5);   example.setTwo(2);   example.setThree("Three");  } }
下面是如何实例化一个Example类型的类的情形:

Example example=new Example();

  前面的代码将代替具体的Double,Integer和String类型-相当于在列表1中的"ONE"、"TWO"和"THREE"占位符。你可以看到这些变量都有这些类型,通过下面三行设置它们的值。

example.setOne(1.5);
example.setTwo(2);
example.setThree("Three");

  现在,既然你已经知道如何创建一个使用泛型的定制类,那么创建一个使用泛型的定制集合类则更为简单些。
0
相关文章