您的位置:首页 > 编程语言 > Java开发

Java中泛型最新的认识和理解

2016-11-21 15:51 309 查看

一.泛型是什么:

泛型是指参数化类型的能力。
可以定义带泛型的类,方法或者接口。随后编译器会具体的类型来替换它。

二.泛型的好处:

下面先看一个的小demo:

     List list = new ArrayList();

     list.add(1);

     list.add(2);

     list.add("3");//一不小心插入了 String

     for (Object object : list){

        //取出“3”时报
错 : ClassCastException

        Integert = (Integer)object;

  }

  由于对象进入集合后失去了其状态信息,所以取出来时需要进行强制类型转换。

上面是一个集合没有使用泛型时出现的错误,那么当我们使用泛型时,该错误就会避免,例如:

     List<Integer>list = newArrayList<Integer>();

     list.add(1);

     list.add(2);

     list.add("3");//插入String,
 运行时不出错但在编译会报错误

//定义一个接口

interface Friuit<E>{

   boolean eat(E e);

}

//定义一个类

public class  Apple<T>{

   private T info;

   public Apple(T
info) {

     this.info =
info;

   }

  

   public T getInfo(){

     return this.info;

   }

  

   public void setInfo(T
info){

     this.info =
info;

   }

    

   public static void main(String[]
args) {

      Apple<String>   ap1 = newApple<String>("小苹果");

      System.out.println(ap1.getInfo());

      Apple<Double> ap2 = newApple<Double>(1.23);

      System.out.println(ap2.getInfo());

   }

}
//定义一个f泛型方法

 public  static
<E> void print(E[]  list){} 


所谓泛型方法,就是在声明方法时定义一个或多个类型形参。泛型方法的用法格式如下:

修饰符
    < T>     返回值类型     方法名(形参列表
E[]  list){

        //方法体

}

把上面方法的格式和普通方法的格式进行对比,不难发现泛型方法的方法签名比普通方法的方法签名多了

1.类型形参声明,

2.类型形参声明以尖括号包括起来,

3.多个类型形参之间以逗号(,)隔开,

4.所有的类型形参声明方法方法修饰符和方法返回值类型之间。




三.泛型使用的注意事项:

1.不能使用泛型类型参数来创建数组。
2.不能使用泛型类型参数来创建实例。
3.不能在静态环境中使用类的泛型类型参数。

4.在异常类中不能使用泛型类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java中的泛型