java1.5开始引入泛型,使用起来很方便!我在这里简单介绍一下
1。容器
ArrayList接口在1.5开始变成ArrayList<E>因此使用时可以使用:
java 代码
- ArrayList<String> a;
- a=new ArrayList<String>();
- a.add("泛型");
- String s=a.get(0);
使用泛型可以在容器中放入指定类型的对象。并获取减少类型转换。
1.5之后的容器引入了泛型
2。使用
在类名称后声明:
java 代码
- public static class abc<E>{
然后就可以在类中使用
E e;
E是个什么????
就好像一个未定的类型,所以暂时可以看着一个Object
由类的使用者定义类型!
看下面代码:
- package cn.openz.mbook.ModuleCreate;
- import java.util.ArrayList;
- /**
- *
- * @author Administrator
- */
- public class ObjectOut {
- /** Creates a new instance of ObjectOut */
- public ObjectOut() {
- }
- public static void main(String[] arg){
- ArrayList<String> a=new ArrayList<String>();
- a.add("asdfsadf");
- System.out.println(a.get(0));
- abc<String> a1=new abc<String>("asfdasdf");
- System.out.println(a1.getE());
- }
- public static class abc<E>{
- public E e;
- public abc(E o){
- this.e=o;
- }
- public String toString(){
- return e.toString();
- }
- public E getE(){
- return e;
- }
- }
- }
3。使用让泛型更具体!
java 代码
- public static class abc<E extends CharSequence>{
- public E e;
- public abc(E o){
- this.e=o;
- }
- public String toString(){
- return e.toString();
- }
- public E getE(){
- return e;
- }
- }
上面的e可以使CharSequence及其子类。
在class abc中e可以调用CharSequence的方法!
还可是更具体的类
请见sun的网站,一般我们仅仅使用上面的内容!
<E extents CharSequence>
这时E可以是继承CharSequence的类!
如把上面的内部类变为:
java 代码