JAVA 泛型编程

java1.5开始引入泛型,使用起来很方便!我在这里简单介绍一下
1。容器
ArrayList接口在1.5开始变成ArrayList<E>因此使用时可以使用:

java 代码

  1. ArrayList<String> a;   
  2. a=new ArrayList<String>();   
  3. a.add("泛型");   
  4. String s=a.get(0); 

使用泛型可以在容器中放入指定类型的对象。并获取减少类型转换。
1.5之后的容器引入了泛型
2。使用
在类名称后声明:

java 代码

  1. public static class abc<E>{ 

然后就可以在类中使用
E e;
E是个什么????
就好像一个未定的类型,所以暂时可以看着一个Object
由类的使用者定义类型!
看下面代码:

  1. package cn.openz.mbook.ModuleCreate;   
  2. import java.util.ArrayList;   
  3. /**
  4. *
  5. * @author Administrator
  6. */
  7. public class ObjectOut {   
  8. /** Creates a new instance of ObjectOut */
  9. public ObjectOut() {   
  10.     }   
  11. public static void main(String[] arg){   
  12.         ArrayList<String> a=new ArrayList<String>();   
  13.         a.add("asdfsadf");   
  14.         System.out.println(a.get(0));   
  15.         abc<String> a1=new abc<String>("asfdasdf");   
  16.         System.out.println(a1.getE());   
  17.     }   
  18. public static class abc<E>{   
  19. public E e;   
  20. public abc(E o){   
  21. this.e=o;   
  22.         }   
  23. public String toString(){   
  24. return e.toString();   
  25.         }   
  26. public E getE(){   
  27. return e;   
  28.         }   
  29.     }   
  30. }  

3。使用让泛型更具体!

java 代码

  1. public static class abc<E extends  CharSequence>{   
  2. public E e;   
  3. public abc(E o){   
  4. this.e=o;   
  5.         }   
  6. public String toString(){   
  7. return e.toString();   
  8.         }   
  9. public E getE(){   
  10. return e;   
  11.         }   
  12.     }  

上面的e可以使CharSequence及其子类。
在class abc中e可以调用CharSequence的方法!
还可是更具体的类
请见sun的网站,一般我们仅仅使用上面的内容!

<E extents CharSequence>
这时E可以是继承CharSequence的类!
如把上面的内部类变为:

java 代码

你可能感兴趣的:(java 泛型)